D'Websäit gouf automatesch iwwersat. Wann eppes net kloer ass, kuckt w.e.g. déi englesch Dokumentatioun.
Basis Benotzung
Eroplueden d'Gridzy Dateien op Äre Server a füügt se op Är Websäit (normalerweis am Kapp Sektioun):
<link rel="stylesheet" href="gridzy/gridzy.min.css" />
<script src="gridzy/gridzy.min.js"></script>Füügt den HTML Code (iwwerall an der Kierpersektioun):
<div class="gridzy">
<img src="https://loremflickr.com/640/480?random=1" alt="a random image" />
<img src="https://loremflickr.com/480/640?random=2" alt="another random image" />
<img src="https://loremflickr.com/640/640?random=3" alt="yet another random image" />
<img src="https://loremflickr.com/640/480?random=4" alt="a random image again" />
<img src="https://loremflickr.com/640/480?random=5" alt="one last random image" />
</div>Dat ass et! Dat ass e voll funktionell Beispill. Keng extra Initialiséierung ass erfuerderlech.
Configuratioun
Deen einfachste Wee fir Gridzy ze konfiguréieren ass, just HTML Attributer ze benotzen. Dir musst nëmmen d'Optiounsnimm mat data-gridzy- Präfix. Also, fir d'Optioun spaceBetween ze setzen, füügt just den Attribut data-gridzy-spaceBetween derbäi.
<div class="gridzy" data-gridzy-spaceBetween="20" data-gridzy-desiredHeight="400">
<img src="https://loremflickr.com/640/480?random=1" alt="a random image" />
<img src="https://loremflickr.com/480/640?random=2" alt="another random image" />
<img src="https://loremflickr.com/640/640?random=3" alt="yet another random image" />
<img src="https://loremflickr.com/640/480?random=4" alt="a random image again" />
<img src="https://loremflickr.com/640/480?random=5" alt="one last random image" />
</div>Main Optiounen
Justified Layoutoptiounen
Waterfall Layoutoptiounen
Méi fortgeschratt Optiounen
Fir méi fortgeschratt Optiounen, kuckt d' API .
Semantesch HTML
Déi einfachst HTML Struktur vu Gridzy ass dëst:
<div class="gridzy">
<img src="https://loremflickr.com/640/480?random=1" alt="a random image" />
<img src="https://loremflickr.com/480/640?random=2" alt="another random image" />
<img src="https://loremflickr.com/640/640?random=3" alt="yet another random image" />
<img src="https://loremflickr.com/640/480?random=4" alt="a random image again" />
<img src="https://loremflickr.com/640/480?random=5" alt="one last random image" />
</div>Wéi och ëmmer, Gridzy ass ganz flexibel an Dir kënnt bal all aner HTML Struktur benotzen. Et ginn nëmmen e puer Punkte fir ze berücksichtegen:
- All Kand vum Containerelement stellt een Element am Gitter duer.
- Béid Containerelement a seng Kanner kënnen all Tagtyp sinn, sou wéi
ulali(denkt just un d'Browser-Defaults zréckzesetzen). - Wann en
imgElement net en direkt Kand selwer ass, brauch et d'KlassgridzyImage.
Also ass dëst och eng funktionéierend HTML Struktur:
<ul class="gridzy">
<li>
<span>
<img class="gridzyImage" src="https://loremflickr.com/640/480?random=1" alt="a random image" />
</span>
</li>
<li>
<span>
<img class="gridzyImage" src="https://loremflickr.com/480/640?random=2" alt="another random image" />
</span>
</li>
<li>
<span>
<img class="gridzyImage" src="https://loremflickr.com/640/640?random=3" alt="yet another random image" />
</span>
</li>
<li>
<span>
<img class="gridzyImage" src="https://loremflickr.com/640/480?random=4" alt="a random image again" />
</span>
</li>
<li>
<span>
<img class="gridzyImage" src="https://loremflickr.com/640/480?random=5" alt="one last random image" />
</span>
</li>
</ul>Besonnesch wann Dir Ënnerschrëfte wëllt addéieren, braucht Dir eng fortgeschratt HTML Struktur. Fir méi doriwwer ze léieren, kuckt op Captions & Skins .
Ënnerschrëften & Skins
Wann Dir Ënnerschrëften an Är Galerie wëllt addéieren, musst Dir d'Erscheinung definéieren. Dofir sinn e puer virdefinéiert Skins verfügbar. All Haut besteet aus enger CSS Datei. Dir musst dës Datei zousätzlech zu den Haapt Gridzy Dateien addéieren (normalerweis am Kapp Sektioun):
<link rel="stylesheet" href="gridzy/skins/gridzySkinClassic/style.min.css" />Ausserdeem brauch Dir eng fortgeschratt HTML Struktur:
<div class="gridzy gridzySkinClassic">
<figure>
<img class="gridzyImage" src="https://loremflickr.com/640/480?random=1" alt="a random image" />
<figcaption class="gridzyCaption">a caption text</figcaption>
</figure>
<figure>
<img class="gridzyImage" src="https://loremflickr.com/480/640?random=2" alt="another random image" />
<figcaption class="gridzyCaption">another caption text</figcaption>
</figure>
<figure>
<img class="gridzyImage" src="https://loremflickr.com/640/640?random=3" alt="yet another random image" />
<figcaption class="gridzyCaption">yet another caption text</figcaption>
</figure>
<figure>
<img class="gridzyImage" src="https://loremflickr.com/640/480?random=4" alt="a random image again" />
<figcaption class="gridzyCaption">a caption text again</figcaption>
</figure>
<figure>
<img class="gridzyImage" src="https://loremflickr.com/640/480?random=5" alt="one last random image" />
<figcaption class="gridzyCaption">one last caption text</figcaption>
</figure>
</div>Wann Dir Iech iwwer d'HTML Struktur freet, kuckt op Semantesch HTML .
Fir den Iwwerschrëft kënnt Dir all Typ Tag benotzen, gitt sécher datt et d'Klass gridzyCaption huet. Den img Element brauch d'Klass gridzyImage .
Dat Beispill hei uewen weist Iech d'Haut gridzySkinClassic . Fir en aneren ze benotzen, ersetzt just den Hautnumm mat engem vun dësen:
Inklusiv Skins
| Verfügbar Klassen | |
|---|---|
| gridzySkinBlank e gudde Startpunkt fir eng eegen Haut ze kreéieren liewen Virschau | gridzySkinBlank |
| gridzySkinClassic liewen Virschau | gridzySkinClassic(DEPRECATED zënter Versioun 2.6.0) |
| gridzySkinFullOverlay liewen Virschau | gridzySkinFullOverlay(DEPRECATED zënter Versioun 2.6.0) |
| gridzySkinLift liewen Virschau | gridzySkinLift(DEPRECATED zënter Versioun 2.6.0) |
| gridzySkinMagnifier Zoom Funktionalitéit net abegraff liewen Virschau | gridzySkinMagnifier(DEPRECATED zënter Versioun 2.6.0) |
All déi uewe genannte Skins brauchen nëmmen eng CSS Datei, awer et ginn zousätzlech Skins déi och eng JavaScript Datei erfuerderen:
<link rel="stylesheet" href="gridzy/skins/gridzySkinBlur/style.min.css" />
<script src="gridzy/skins/gridzySkinBlur/script.min.js"></script>| Verfügbar Klassen | |
|---|---|
| gridzySkinBlur funktionnéiert net am IE liewen Virschau | gridzySkinBlur(DEPRECATED zënter Versioun 2.6.0) |
| gridzySkinCard liewen Virschau | gridzySkinCard(DEPRECATED zënter Versioun 2.6.0) |
Haut Optiounen
Zënter Versioun 2.6.0 ginn et Optiounen fir déi agebaute Skins ze konfiguréieren. Ofhängeg vun der spezifescher Haut kënnt Dir d'Hannergrondfaarf, d'Textfaarf an den Textschatt setzen. Dir musst just CSS personaliséiert Eegeschafte benotzen wéi Dir hei kënnt gesinn:
<div class="gridzy gridzySkinClassic" style="--background: rgba(0, 80, 117, .8); --color: rgb(238, 238, 238); ">
<figure>
<img class="gridzyImage" src="https://loremflickr.com/640/480?random=1" alt="a random image" />
<figcaption class="gridzyCaption">a caption text</figcaption>
</figure>
<figure>
<img class="gridzyImage" src="https://loremflickr.com/480/640?random=2" alt="another random image" />
<figcaption class="gridzyCaption">another caption text</figcaption>
</figure>
...
</div>Préift déi ënnerstëtzt Variabelen a Standardwäerter fir all Haut hei:
gridzySkinClassic
| Variabel | Default Wäert | Informatiounen |
|---|---|---|
--background | rgba(0, 0, 0, .7) | erlaabt all CSS Hannergrond Wäert |
--color | rgb(255, 255, 255) | erlaabt all CSS Faarf Wäert |
--text-shadow | none | erlaabt all CSS Text-Shadow Wäert |
gridzySkinFullOverlay
| Variabel | Default Wäert | Informatiounen |
|---|---|---|
--background | rgba(0, 0, 0, .7) | erlaabt all CSS Hannergrond Wäert |
--color | rgb(255, 255, 255) | erlaabt all CSS Faarf Wäert |
--text-shadow | none | erlaabt all CSS Text-Shadow Wäert |
gridzySkinLift
| Variabel | Default Wäert | Informatiounen |
|---|---|---|
--background | rgba(0, 0, 0, .7) | erlaabt all CSS Hannergrond Wäert |
--color | rgb(255, 255, 255) | erlaabt all CSS Faarf Wäert |
--text-shadow | 0 0 10px rgb(0, 0, 0), 0 0 20px rgb(0, 0, 0), 0 0 30px rgb(0, 0, 0) | erlaabt all CSS Text-Shadow Wäert |
gridzySkinMagnifier
| Variabel | Default Wäert | Informatiounen |
|---|---|---|
--background | rgba(0, 0, 0, .7) | erlaabt all CSS Hannergrond Wäert |
--color | rgb(255, 255, 255) | erlaabt all CSS Faarf Wäert |
Dës Haut ënnerstëtzt net --text-shadow
gridzySkinBlur
| Variabel | Default Wäert | Informatiounen |
|---|---|---|
--background | rgba(0, 0, 0, .7) | erlaabt all CSS Hannergrond Wäert |
--color | rgb(255, 255, 255) | erlaabt all CSS Faarf Wäert |
--text-shadow | 0 0 10px rgb(0, 0, 0) | erlaabt all CSS Text-Shadow Wäert |
gridzySkinCard
| Variabel | Default Wäert | Informatiounen |
|---|---|---|
--background | rgba(0, 0, 0, 1) | erlaabt all CSS Hannergrond Wäert |
--color | rgb(255, 255, 255) | erlaabt all CSS Faarf Wäert |
--text-shadow | none | erlaabt all CSS Text-Shadow Wäert |
All virdefinéiert Skins ënnerstëtzen nëmmen einfach Text Ënnerschrëften. Dir kënnt Är ganz eegen a méi komplex Skins erstellen. Kuckt w.e.g. Style Gridzy .
Style Gridzy
Wann keng virdefinéiert Haut op Äre Besoinen passt, kënnt Dir Äert eegent styléieren.
Deen einfachste Wee ass fir d'éischt eng existent Haut ze kopéieren an se un Ären eegene Besoinen unzepassen. Déi virdefinéiert Haut gridzySkinBlank géif normalerweis e gudde Fundament ubidden wéi och eng gutt Dokumentatioun an der CSS Datei:
/** SKIN Blank **/
/* all gallery items (direct children of the main container element) */
.gridzySkinBlank > .gridzyItem {
overflow: hidden;
}
/* all gallery images (predefined in Gridzy's main CSS file, but can be overridden) */
.gridzySkinBlank .gridzyImage {
}
/* all gallery captions (just create your very own style) */
.gridzySkinBlank .gridzyCaption {
margin: 0;
padding: .5em;
opacity: 0;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
position: absolute;
z-index: 1;
top: 0;
left: 0;
width: 100%;
height: 100%;
box-sizing: border-box;
transition: opacity .5s;
overflow: auto;
background: rgba(0, 0, 0, .7);
color: rgb(255, 255, 255);
}
.gridzySkinBlank > .gridzyItem:hover .gridzyCaption {
opacity: 1;
}An der CSS Datei fannt Dir d'Klassen gridzySkinBlank , gridzyImage an gridzyCaption . Gridzy selwer brauch dës Klassen net. Si ginn nëmme fir Styling benotzt an dofir kënnt Dir se ewechhuelen oder ëmbenennen wann Dir wëllt.
Zousätzlech fannt Dir d'CSS Klass gridzyItem . Gridzy setzt dës Klass automatesch un all direkt Kanner vum Haaptbehälterelement. Also, Dir kënnt dës Klass benotze fir d'Artikele vun Ärer Galerie ze styléieren.
Mind Wichteg Saachen
- Den Inhalt vum Artikel soll voll reaktiounsfäeger sinn. Bedenkt datt d'Elementgréisst definitiv ännert. Benotzt Prozentsaz Wäerter amplaz Pixel Wäerter. A kuckt op d'Gridzy Layoutoptioun
autoFontSize, déi d'Schrëftgréisst op d'Elementboxgréisst bindt. - All Element soll e gutt definéiert Aspekt Verhältnis hunn. Den Aspekt Verhältnis vum Artikel wäert ni änneren an ass néideg fir d'Gitter ze berechnen. Also wann en Element net automatesch e gutt definéierten Aspekt Verhältnis huet, definéiert et manuell (zB iwwer css).
A verschiddene Fäll kann et méi einfach sinn den Inhalt vun den Artikelen ze styléieren ier Gridzy initialiséiert. Huelt einfach d'Klass gridzy oder d'Gridzy Javascript Datei temporär fir dëst.
Dat ass et! Dat ass alles wat Dir braucht fir Är ganz eegen Haut ze bauen. Déi meescht vun de virdefinéierte Skins benotzen net méi wéi dëst.
Awer et kéint méi sinn wann Dir wëllt ...
Fortgeschratt Skins
Gridzy benotzt méi CSS Klassen wéi nëmmen gridzyItem . Déi meescht vun hinnen ginn automatesch agestallt an Dir kënnt se och fir Styling benotzen.
Main Container Klassen
| Klass Numm | Beschreiwung |
|---|---|
gridzymanuell ze setzen | Gridzy fënnt automatesch Elementer mat dëser Klass an initialiséiert se. |
gridzyAnimated | Gëtt automatesch gesat wann d'Optioun animate true ass. Wann dës Klass manuell gesat gëtt, gëtt d'Optioun animate automatesch och true (ausser wann se explizit op false gesat ass). |
Artikel Klassen
| Klass Numm | Beschreiwung |
|---|---|
gridzyItem | Gëtt gesat soubal den Artikel den Initialiséierungsprozess ufänkt. Wäert ni geläscht ginn. |
gridzyItemInitializing | Gëtt gesat soubal den Artikel den Initialiséierungsprozess ufänkt. Gëtt duerch gridzyItemReady ersat soubal den Artikel komplett initialiséiert ass. Heescht net datt d'Biller voll gelueden sinn (kuckt gridzyItemLoading ), awer den Artikel ass prett fir siichtbar ze ginn. |
gridzyItemReady | Ersetzt gridzyItemInitializing soubal den Artikel komplett initialiséiert ass. Wäert ni geläscht ginn. Heescht net datt Biller voll gelueden sinn (gesinn gridzyItemComplete ), mee Element ass prett siichtbar ze kréien. |
gridzyItemLoading | Gëtt gesat soubal den Artikel den Initialiséierungsprozess ufänkt. Gëtt duerch gridzyItemComplete ersat soubal déi enthale Biller (normalerweis nëmmen eng) voll gelueden sinn. |
gridzyItemComplete | Ersetzt gridzyItemLoading soubal déi enthale Biller (normalerweis nëmmen eng) voll gelueden sinn. Wäert ni geläscht ginn. |
gridzyItemInitialToVisible | Gëtt gesat soubal den Artikel déi éischte Kéier ufänkt. Gëtt geläscht soubal den Artikel komplett sichtbar ass. |
gridzyItemVisible | Gëtt gesat soubal den Artikel voll sichtbar ass. Gëtt geläscht soubal den Artikel ufänkt ze verschwannen. |
gridzyItemVisibleToHidden | Gëtt gesat soubal den Artikel ufänkt ze verschwannen. Gëtt geläscht soubal den Artikel komplett verstoppt ass. |
gridzyItemHidden | Gëtt gesat soubal den Artikel komplett verstoppt ass. Gëtt geläscht soubal den Artikel ufänkt ze erschéngen. |
gridzyItemHiddenToVisible | Gëtt gesat soubal d'Element ufänkt ze erschéngen (ausser déi éischt Kéier ze erschéngen - kuckt Klass gridzyItemInitialToVisible ). Gëtt geläscht soubal den Artikel komplett sichtbar ass. |
gridzyItemVisibleToVisible | Gëtt gesat soubal eppes am Gitter geännert huet, awer den Artikel selwer war a bleift siichtbar. Gëtt geläscht soubal d'Ännerung Animatioun fäerdeg ass. |
Par défaut sinn de Prozessindikator an d'Animatioune fir erschéngen a verschwannen Biller virdefinéiert vun der Gridzy Haapt CSS Datei.
Mat dësen uewe genannten CSS Klassen kënnt Dir Ären eegene Prozessindikator an Animatiounen styléieren. Gitt e Bléck an d'Gridzy Haapt CSS Datei, fir ze verstoen wat Dir musst iwwerschreiden. Keng Angscht, do ass alles gutt dokumentéiert.
Optimiséieren Lueden
Wann Dir vill Biller benotzt, kann et eng gutt Iddi sinn Gridzy ze hëllefen d'Gitter méi séier ze bauen.
Sprangen Biller verhënneren
Gridzy brauch absolut den Aspekt Verhältnis vun alle Biller fir d'Gitter ze berechnen. Dës Tatsaach Resultater an Sprangen Elementer wann e puer Biller sinn prett an anerer sinn net. Wat méi Biller et sinn, wat méi lästeg kann dësen Effekt sinn.
Fir dëst Verhalen ze vermeiden, setzt just width an height fir all img Elementer. Et ass wichteg déi richteg Wäerter fir all eenzel Bild ze setzen, soss wieren d'Biller verzerrt. Déi richteg Wäerter sinn déi ursprénglech Breet an Héicht vum jeweilegen Bild:
<div class="gridzy">
<img src="https://loremflickr.com/640/480?random=1" width="640" height="480" alt="a random image" />
<img src="https://loremflickr.com/480/640?random=2" width="480" height="640" alt="another random image" />
<img src="https://loremflickr.com/640/640?random=3" width="640" height="640" alt="yet another random image" />
<img src="https://loremflickr.com/640/480?random=4" width="640" height="480" alt="a random image again" />
<img src="https://loremflickr.com/640/480?random=5" width="640" height="480" alt="one last random image" />
</div>Duerno kann de Gridzy d'Gitter direkt berechnen ouni déi tatsächlech Gréisste vun de Biller ze wëssen.
Lazy Loading
Fir nëmmen Biller ze lueden déi am sichtbare Viewport sinn, befollegt just dës Schrëtt:
- Füügt
widthanheightAttributer un wéi uewen beschriwwen (vergewëssert Iech déi richteg Wäerter ze benotzen) - Ersetzen all
srcAttributer matdata-gridzylazysrcwéi hei ënnendrënner (wann Dir ochsrcsetAttributer hutt, ersetzt se matdata-gridzylazysrcset).
<div class="gridzy">
<img data-gridzylazysrc="https://loremflickr.com/640/480?random=1" width="640" height="480" alt="a random image" />
<img data-gridzylazysrc="https://loremflickr.com/480/640?random=2" width="480" height="640" alt="another random image" />
<img data-gridzylazysrc="https://loremflickr.com/640/640?random=3" width="640" height="640" alt="yet another random image" />
<img data-gridzylazysrc="https://loremflickr.com/640/480?random=4" width="640" height="480" alt="a random image again" />
<img data-gridzylazysrc="https://loremflickr.com/640/480?random=5" width="640" height="480" alt="one last random image" />
</div>No dëse Schrëtt lueden d'Biller soubal se no oder am Viewport sinn.
Prozess Indikator
De Prozessindikator ass déi kleng animéiert Ikon déi erschéngt wärend d'Bild lued. Wann Dir Ënnerschrëften & Skins benotzt, gëtt de Prozessindikator automatesch gewisen. Soss braucht Dir e puer Upassungen:
- Setzt all
imgElement an endivElement
(oder an all aner Element - kuckt semantesch HTML fir méi) - Füügt d'Klass
gridzyImageun allimgElement
<div class="gridzy">
<div><img src="https://loremflickr.com/640/480?random=1" class="gridzyImage" alt="a random image" /></div>
<div><img src="https://loremflickr.com/480/640?random=2" class="gridzyImage" alt="another random image" /></div>
<div><img src="https://loremflickr.com/640/640?random=3" class="gridzyImage" alt="yet another random image" /></div>
<div><img src="https://loremflickr.com/640/480?random=4" class="gridzyImage" alt="a random image again" /></div>
<div><img src="https://loremflickr.com/640/480?random=5" class="gridzyImage" alt="one last random image" /></div>
</div>Duerno sollt Dir d'Prozessindikatoren gesinn wann d'Biller Zäit huelen fir ze lueden.
Filteren
Filteren am Gridzy sinn zimlech einfach awer mächteg. Egal wéi eng Zort Filter Dir braucht, et ass ganz wahrscheinlech datt et realiséierbar ass. Alles wat Dir braucht ass, e bësse CSS an e puer HTML Form Elementer ...
Hei ass e funktionell Beispill:
<div id="myFilterControls">
<button value="*">All</button>
<button value=".animals">Animals</button>
<button value=".architecture">Architecture</button>
<button value=".people">People</button>
</div>
<div class="gridzy" data-gridzy-filterControls="#myFilterControls button">
<img class="animals" src="https://loremflickr.com/640/480/animals?random=1" alt="a random animal image" />
<img class="architecture" src="https://loremflickr.com/640/480/arch?random=1" alt="a random architecture image" />
<img class="people" src="https://loremflickr.com/640/480/people?random=1" alt="a random people image" />
<img class="animals" src="https://loremflickr.com/640/480/animals?random=2" alt="another random animal image" />
<img class="architecture" src="https://loremflickr.com/640/480/arch?random=2" alt="another random architecture image" />
<img class="people" src="https://loremflickr.com/640/480/people?random=2" alt="another random people image" />
<img class="animals" src="https://loremflickr.com/640/480/animals?random=3" alt="yet another random animal image" />
</div>Loosst eis et Schrëtt fir Schrëtt bauen
1. Als éischt brauche mir déi üblech HTML-Struktur vu Gridzy a setzen Klassennimm fir all Galerieartikele fir datt mir se duerno kënne filteren
<div class="gridzy">
<img class="animals" src="https://loremflickr.com/640/480/animals?random=1" alt="a random animal image" />
<img class="architecture" src="https://loremflickr.com/640/480/arch?random=1" alt="a random architecture image" />
<img class="people" src="https://loremflickr.com/640/480/people?random=1" alt="a random people image" />
<img class="animals" src="https://loremflickr.com/640/480/animals?random=2" alt="another random animal image" />
<img class="architecture" src="https://loremflickr.com/640/480/arch?random=2" alt="another random architecture image" />
<img class="people" src="https://loremflickr.com/640/480/people?random=2" alt="another random people image" />
<img class="animals" src="https://loremflickr.com/640/480/animals?random=3" alt="yet another random animal image" />
</div>An dësem Beispill benotze mir nëmmen eng Klass fir all Element. Awer Dir kënnt och verschidde Klassen fir en eenzegt Element setzen, wann dat Element iwwer verschidde Filtere soll fonnt ginn.
2. Dann addéiere mer e puer Knäppercher duerch déi mir d'Filter dann änneren
<button value="*">All</button>
<button value=".animals">Animals</button>
<button value=".architecture">Architecture</button>
<button value=".people">People</button>
<div class="gridzy">
<img class="animals" src="https://loremflickr.com/640/480/animals?random=1" alt="a random animal image" />
<img class="architecture" src="https://loremflickr.com/640/480/arch?random=1" alt="a random architecture image" />
<img class="people" src="https://loremflickr.com/640/480/people?random=1" alt="a random people image" />
<img class="animals" src="https://loremflickr.com/640/480/animals?random=2" alt="another random animal image" />
<img class="architecture" src="https://loremflickr.com/640/480/arch?random=2" alt="another random architecture image" />
<img class="people" src="https://loremflickr.com/640/480/people?random=2" alt="another random people image" />
<img class="animals" src="https://loremflickr.com/640/480/animals?random=3" alt="yet another random animal image" />
</div>Amplaz vun de Knäppercher kënnt Dir och aner Formelementer benotzen wéi Checkboxen, Radioknäppercher, Felder auswielen a sou weider.
Wéi Dir gesitt, sinn d'Wäerter vun de Knäppercher üblech CSS Selektor. Soubal mir fäerdeg sinn, wäert e Klick op esou e Knäppchen d'Biller weisen, déi mat deem CSS Selector passen. Technesch setzt se einfach d' filter op dëse Wäert.
Dir kënnt och vill méi komplex selectors benotzen. Zum Beispill :not(.animals) géif och funktionnéieren, sou wéi .animals.people an .animals, .people .
3. Endlech kapsule mir d'Knäppercher an engem div Container a binden se un d'Gridzy Galerie, andeems Dir d'Optioun filterControls setzt:
<div id="myFilterControls">
<button value="*">All</button>
<button value=".animals">Animals</button>
<button value=".architecture">Architecture</button>
<button value=".people">People</button>
</div>
<div class="gridzy" data-gridzy-filterControls="#myFilterControls button">
<img class="animals" src="https://loremflickr.com/640/480/animals?random=1" alt="a random animal image" />
<img class="architecture" src="https://loremflickr.com/640/480/arch?random=1" alt="a random architecture image" />
<img class="people" src="https://loremflickr.com/640/480/people?random=1" alt="a random people image" />
<img class="animals" src="https://loremflickr.com/640/480/animals?random=2" alt="another random animal image" />
<img class="architecture" src="https://loremflickr.com/640/480/arch?random=2" alt="another random architecture image" />
<img class="people" src="https://loremflickr.com/640/480/people?random=2" alt="another random people image" />
<img class="animals" src="https://loremflickr.com/640/480/animals?random=3" alt="yet another random animal image" />
</div>Wéi Dir gesitt, benotze mir och e CSS Selector fir d' filterControls Optioun. Den div Container mat dem id Attribut déngt nëmme fir d'Knäppercher méi einfach ze maachen iwwer dësen CSS Selector.
Dat ass et!
Wann Dir eng JavaScript-Léisung léiwer hutt, kuckt d' API .
API
Och wann Gridzy seng eege API huet, kënnen déi meescht Saache ouni et gemaach ginn, einfach andeems Dir d'DOM manipuléiert. Gridzy wäert et bemierken an d'Gitter upassen. Awer et gëtt och eng ganz mächteg API ...
Manipulatioun vun der DOM
Fir all Document Object Model (DOM) Manipulatiounen brauche mir als éischt de Container Element:
// get the container element
var gridzyElement = document.querySelector('.gridzy');Fotoen addéieren
Et ass wichteg dat neit Kand Element komplett ze bauen an ze fëllen ier Dir et an d'Containerelement bäidréit. Soss kann Gridzy net déi richteg Dimensiounen entdecken.
// create a new img element
var newImage = document.createElement('img');
// add src attribute (!! before you add it to the container element !!)
newImage.src = 'https://loremflickr.com/640/480';
// add it as last element to the container element
gridzyElement.appendChild(newImage);
// or as first element (or anywhere in between)
gridzyElement.insertBefore(newImage, gridzyElement.firstChild);Ewechzehuelen Biller
// remove the first image
gridzyElement.removeChild(gridzyElement.firstElementChild);Änneren Optiounen
// change the spaceBetween option to a specific value
gridzyElement.setAttribute('data-gridzy-spaceBetween', '10');
// change the layout option to a specific value
gridzyElement.setAttribute('data-gridzy-layout', 'waterfall');
// reset the spaceBetween option to its default value
gridzyElement.removeAttribute('data-gridzy-spaceBetween');Méi iwwer d'Manipulatioun vun der DOM fannt Dir op MDN Web Docs . Et gëtt och eng Aféierung zum DOM verfügbar.
Proprietär API
Fir d'API ze benotzen, brauche mir als éischt d'Gridzy Instanz, déi un de Gridzy Container Element gebonnen ass:
// get the Gridzy instance
var gridzyInstance = document.querySelector('.gridzy').gridzy;Kritt Optioun
// get the value of a single option
var currentLayout = gridzyInstance.getOption('layout');Kréien All Optiounen
// get all option values as an object
var currentOptions = gridzyInstance.getOptions();Set Optiounen
// set specific option values
gridzyInstance.setOptions({
spaceBetween: 10,
layout: 'waterfall'
});
// or reset options to their default values
gridzyInstance.setOptions({
spaceBetween: null,
layout: null
});Filter applizéieren
E Filter opzemaachen ass just den filter ze setzen deen all gültege CSS Selektor ka sinn:
// set the filter to match items with class "animals"
gridzyInstance.setOptions({
filter: '.animals'
});
// reset the filter to match all items again
gridzyInstance.setOptions({
filter: '*'
});
// set the filter to match items without class "animals"
gridzyInstance.setOptions({
filter: ':not(.animals)'
});
// set the filter to match items with class "animals" or "people"
gridzyInstance.setOptions({
filter: '.animals, .people'
});
// set the filter to match items that have both classes, "animals" and "people"
gridzyInstance.setOptions({
filter: '.animals.people'
});Add Callback Funktiounen
DEPRECATED zënter Versioun 2.4.0
Benotzt amplaz déi modern a méi flexibel Eventer . Gesinn déi nächst Rubrik fir Detailer.
Gridzy.js 2 ënnerstëtzt e puer Optiounen fir Callback Funktiounen. Si kënnen nëmmen iwwer de propriétaire API gesat ginn, awer grad wéi aner Optiounen:
// same as set other options
gridzyInstance.setOptions({
onOptionsChanged: function() {
// will be executed each time the options have changed.
},
onBeforeOptionsChanged: function() {
// will be executed, before new options take effect.
}
});Benotzen Evenementer
zënter Versioun 2.4.0
Dir kënnt Gridzy Eventer genau wéi gewéinlech JavaScript Eventer benotzen:
document.addEventListener('gridzyOptionsChanged', function(event) {
// will be executed each time the options have changed.
});
document.addEventListener('gridzyBeforeOptionsChanged', function(event) {
// will be executed, before new options take effect.
});E puer Eventer ginn op de Gridzy Containerelement gebrannt an aner Eventer ginn op déi eenzel Elementelementer am Containerelement gebrannt.
Eventer op de Gridzy Container Element gebrannt:
event.target bitt de Gridzy Container Element.
event.detail.instance bitt d'Gridzy Instanz.
Eventer op Element Elementer gebrannt:
event.target stellt dat jeweileg Element Element.
event.detail.instance bitt d'Gridzy Instanz.
API - Global
Et ginn e puer Funktiounen déi onofhängeg vu Gridzy Instanzen sinn. Also brauche mir keng Instanz virdrun ze kréien.
Kritt Standardoptioun
// get the default value of a single option
var defaultLayout = Gridzy.getDefaultOption('layout');Kritt All Standardoptiounen
// get all default option values as an object, including the default layout options of the default layout
var defaultOptions = Gridzy.getDefaultOptions();
// or get all default option values, including the default layout options of a specific layout
var defaultOptions = Gridzy.getDefaultOptions('waterfall');Set Default Optiounen
Dëst setzt net d'Optioune vun all schonn initialiséierte Gridzy Instanzen, mee definéiert d'Basis fir nei Instanzen. Wéi och ëmmer, wann eng Optioun vun enger existéierender Instanz iwwer de Wäert null zréckgesat gëtt, benotzt se den neie Standardwäert.
// set default option values
Gridzy.setDefaultOptions({
spaceBetween: 10,
layout: 'waterfall'
});Dir kënnt dëst benotze fir Optiounen global ze setzen, wann Dir et nennt ier DOM prett ass. Also braucht Dir net méi Optiounen als Attributer ze setzen.
Automatismen
Soulaang all automatisms vun Gridzy.js 2 aktiv sinn, ass et net néideg fir déi ënnen Methoden. Awer d'Automatismen kënnen ausgeschalt ginn fir Gridzy op eng méi traditionell Manéier ze benotzen:
// disable automatic initializations
Gridzy.setDefaultOptions({
autoInitOnDomReady: false,
autoInitOnDomMutation: false
});
// or switch off all mutation observers
Gridzy.setDefaultOptions({
autoInitOnDomMutation: false,
autoSyncChildListMutation: false,
autoSyncAttributesMutation: false,
autoSyncChildClassMutation: false,
autoSyncImageMutation: false
});E puer vun dësen Optiounen kënnen net iwwer data-gridzy- Attributer oder iwwer setOptions() gesat ginn, aus logesche Grënn:
Manuell initialiséieren
// initialize a new Gridzy instance
var gridzyInstance = new Gridzy(document.querySelector('.gridzy'), {
spaceBetween: 10,
layout: 'waterfall'
});Zerstéiert d'Instanz
Ongeféier gesot, de Géigendeel vum Gridzy initialiséieren.
gridzyInstance.destroy();
gridzyInstance = null;Synchroniséiert Kannerlëscht manuell
// after child elements (images) are added to or removed from the DOM.
gridzyInstance.syncChildList();Synchroniséiert en eenzegt Kand Element manuell
Normalerweis net néideg, ausser a ganz rare Fäll.
// after child elements (images) are added to the DOM and only one of them should be synced to Gridzy.
gridzyInstance.syncChild(childElement);Synchroniséiert Attributer manuell
Notéiert datt d' useOptionAttributes Optioun muss true sinn fir dëst.
// after data-gridzy- attributes have changed
gridzyInstance.syncAttributes();Force Rendering
Normalerweis net néideg, och wann all Automatismen ausgeschalt sinn
gridzyInstance.render();