Salvattore prijkt zichzelf als een jQuery Masonry-alternatief met een belangrijk verschil: het gebruikt CSS-configuratie in plaats van JavaScript. Dit soort rasters zijn overal op internet te zien, waarschijnlijk het beroemdst op Pinterest.
Vandaag zullen we Salvattore gebruiken in combinatie met Twitter Bootstrap 3 om een responsief geweldige vloeiende netwerkstructuur te maken.
Eerst moet je de Salvattore JavaScript-bibliotheek (verkleind of bron) pakken. Vervolgens wil je de CSS van Twitter Bootstrap koppelen. In plaats van het downloaden en hosten van onze eigen kopie, zullen we dit direct lenen van NetDNA's BootstrapCDN.
Salvattore + bootstrap
Zodra dit is voltooid, bent u klaar om aan de slag te gaan met het configureren van Salvattore!
Vervolgens hebt u een externe stylesheet of een tag in je header. Het grootste deel van ons werk zal worden gedaan in het stylesheet.
Notitie: je moet opnemen type
en rel
schrijft toe dat Salvattore correct zou werken.
Twitter Bootstrap biedt een krachtige, flexibele netwerkstructuur die zich richt op bottom-up mediaquery's. Laten we eens naar een gemeenschappelijke rij kolommen kijken.
Je zult in de bovenstaande markup het patroon van merken col- [grootte] - [kolomnummer]
. Met beschikbare formaten van xs
, sm
,md
, en lg
, we kunnen verschillende kolomgroottes instellen voor verschillende breekpunten zonder specifieke mediaquery's te schrijven. Bekijk dit voorbeeld, dat laat zien hoe de kolommen verschuiven op verschillende schermbreedten.
We zullen een vloeiend rooster maken met Bootstrap's paneelcomponent. De markup om het paneel te maken is als volgt opgebouwd:
Paneelkop zonder titelPaneelinhoud
Nu we de Bootstrap-stukken hebben die we nodig hebben, gaan we alles samenvoegen met Salvattore. Voorlopig beginnen we met zes lege panelen; later zullen we het allemaal dynamisch maken om elk paneel wat inhoud te geven.
Om Salvattore correct te laten werken, heeft onze rastercontainer een data-columns
attribuut. Dit is wat onze markup er momenteel uitziet:
Paneelkop zonder titelPaneelinhoud
Vervolgens gaan we naar onze stylesheet en voegen we de volgende labels toe via pseudo-elementen:
@media-scherm en (min-breedte: 1px) en (max-breedte: 767px) #columns [gegevenskolommen] :: before content: '2 .col-xs-6'; @media-scherm en (min-breedte: 768px) en (max-breedte: 991px) #columns [gegevenskolommen] :: before content: '3 .col-sm-4'; @media-scherm en (min-breedte: 992px) en (max-breedte: 9999px) #columns [gegevenskolommen] :: before content: '4 .col-md-3';
De onderbrekingspunten die we hebben gekozen, verwijzen rechtstreeks naar Bootstrap's mediaquery's. Salvattore gebruikt de::voor
pseudo-element en inhoud
attribuut om de klassen van de gemaakte kolommen te definiëren en vervolgens probeert de elementen gelijkmatig in die kolommen te splitsen.
We hebben tot nu toe alles strikt in CSS gehouden, maar als je een stapje extra wilt doen, kan JavaScript een aantal leuke dingen aanbieden.
Salvattore gaat een stap verder door toegevoegde functionaliteit aan te bieden. Met deze functies en een verbinding met een API (we gebruiken de boek-API van Google om boeken in te leveren bij Ernest Hemingway), kunnen we een dynamisch raster bouwen. Dit is het JavaScript dat we zullen gebruiken:
functie toevoegen (titel, inhoud) // build / select our elements var grid = $ ('# columns') [0]; var item = document.createElement ('div'); // bouw de html var h = ''; h + = ''; salvattore ['append_elements'] (raster, [item]) item.outerHTML = h; $ .getJSON ("https://www.googleapis.com/books/v1/volumes?q=inauthor:Ernest+Hemingway&callback=?", function (data) $ (data.items) .each (function (i , boek) voeg toe (book.volumeInfo.title, book.volumeInfo.description);););'; h + = titel; h + = ''; h + = ''; h + = inhoud; h + = ''; h + = '
Notitie: jQuery vereist
Eerst maken we een toevoegen
functie die onze titel en inhoud overneemt, en deze verpakt in onze paneelopmaak. We gebruiken dan de salvattore ['append_elements'] (raster, [item])
functie om het item aan ons raster toe te voegen. Ten slotte voeren we de AJAX-aanroep uit om de dynamische gegevens in te voeren.
Om dit goed te laten werken, willen we alle inhoud in de rasterhouder verwijderen.
Salvattore vult de kolommen voor ons in.
Onze definitieve opmaak ziet er als volgt uit:
Boeken door Ernest Hemingway
Salvattore maakt het maken van dynamische roosters in mason-stijl erg gemakkelijk voor iemand die niet veel JavaScript kent. Zeggen dat, met een kleine hoeveelheid JavaScript, het maken van dynamische rasters in combinatie met dynamische inhoud een fluitje van een cent is. Ten slotte biedt Bootstrap een flexibele klasse naamgevingsstructuur om gemakkelijk rasters voor elk breekpunt te construeren.