Versioun 2.x


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

Default WäertBeschreiwung
animatetrueBestëmmt ob Animatioune solle benotzt ginn wann d'Gitter ännert (zum Beispill wann Dir d'Gréisst vun der Browserfenster änneren oder e Filter setzt).
layoutjustifiedDefinéiert de benotzte Layout. Gridzy.js 2 ënnerstëtzt déi zwee verschidde Layouten justified an waterfall . Jiddereng vun hinnen huet seng eege zousätzlech Optioun Parameteren, déi Dir ënnert dëser Tabell fannen kann.
filter*Bestëmmt wéi eng Biller solle gewise ginn. All CSS-Selector kann hei als Wäert benotzt ginn. Normalerweis automatesch iwwer filterControls gesat (kuckt déi nächst Optioun).
Kuckt d'Filter
filterControlsBestëmmt wéi eng Formelementer kënne benotzt ginn fir d'Biller ze filteren. All CSS Selector, deen HTML Form Elementer auswielt, kann hei als Wäert benotzt ginn.
Kuckt d'Filter
autoConsiderScrollBarstrueFir déi verfügbar Breet virauszesoen wann Scrollbars erscheinen oder verschwannen. Et ass ëmmer recommandéiert et true ze loossen, ausser dësen Automatismus mécht Problemer.

Justified Layoutoptiounen

Default WäertBeschreiwung
autoFontSizefalseAutomatesch Aktualiséierung vun der Schrëftgréisst Eegeschafte vun all Këscht baséiert op der Original Këscht Gréisst. Par défaut ass d'Schrëftgréisst Eegeschafte net explizit agestallt.
desiredHeight190Definéiert déi gewënscht Héicht vun Element Reihen. Déi aktuell Héicht gëtt berechent ofhängeg vun der verfügbarer Breet an den Elementer an der Zeil.
hideOnMissingImagetrueVerstoppt Këschte déi Biller enthalen déi net gelueden kënne ginn.
spaceBetween4Definéiert d'Distanz tëscht Elementer a Pixelen.
lastRowAlign
zënter Versioun 2.3.0
justifiedDefinéiert d'Behuele vun der leschter Zeil. Erlaabt Wäerter si left , center , right a justified .
singleRowAlign
zënter Versioun 2.3.0
justifiedDefinéiert d'Verhalen wann et nëmmen eng eenzeg Zeil ass. Erlaabt Wäerter si left , center , right a justified .
fillLastRow
zënter Versioun 2.1.0
trueGEWËSCHT zënter Versioun 2.4.0 (DEPRECATED zënter Versioun 2.3.0 )
Arrangéiert d'Biller sou datt déi lescht Zeil ëmmer komplett gefëllt ass. Wann Dir plangt Biller dynamesch ze addéieren, kann et eng gutt Iddi sinn dëst ze deaktivéieren.
Huelt keen Effekt op eenzel Zeile (kuckt fillSingleRow ).
fillSingleRow
zënter Versioun 2.1.0
trueGEWËSCHT zënter Versioun 2.4.0 (DEPRECATED zënter Versioun 2.3.0 )
Wann et nëmmen eng Zeil ass, arrangéiert se d'Biller sou datt d'Zeil ëmmer komplett gefëllt ass. Wann et ka geschéien datt Dir nëmmen een oder zwee Biller an der Galerie hutt, kéint et eng gutt Iddi sinn dëst auszeschalten.

Waterfall Layoutoptiounen

Default WäertBeschreiwung
autoFontSizefalseAutomatesch Aktualiséierung vun der Schrëftgréisst Eegeschafte vun all Këscht baséiert op der Original Këscht Gréisst. Par défaut ass d'Schrëftgréisst Eegeschafte net explizit agestallt.
desiredWidth250Definéiert déi gewënscht Breet vun de Sailen. Déi aktuell Breet gëtt berechent ofhängeg vun der verfügbarer Breet an der Unzuel vun de Sailen.
hideOnMissingImagetrueVerstoppt Këschte déi Biller enthalen déi net gelueden kënne ginn.
horizontalOrderfalseDefinéiert datt d'Elementer strikt en Element an all Kolonn vu lénks op riets plazéiert sinn, fänkt dann erëm an der lénkser Kolonn onofhängeg an wéi enger Kolonn méi Plaz ass. Par défaut ginn d'Elementer ëmmer an der Kolonn mat der klengster Héicht gesat.
spaceBetween4Definéiert d'Distanz tëscht Elementer a Pixelen.
singleRowAlign
since version 2.7.0
justifiedDefines the behavior when not all columns can be filled due to too few images. Allowed values are left, center, right and justified.

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 ul a li (denkt just un d'Browser-Defaults zréckzesetzen).
  • Wann en img Element net en direkt Kand selwer ass, brauch et d'Klass gridzyImage .

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
gridzySkinClassicLight(DEPRECATED zënter Versioun 2.6.0)
gridzySkinFullOverlay
liewen Virschau
gridzySkinFullOverlay
gridzySkinFullOverlayLight(DEPRECATED zënter Versioun 2.6.0)
gridzySkinLift
liewen Virschau
gridzySkinLift
gridzySkinLiftLight(DEPRECATED zënter Versioun 2.6.0)
gridzySkinMagnifier
Zoom Funktionalitéit net abegraff
liewen Virschau
gridzySkinMagnifier
gridzySkinMagnifierLight(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
gridzySkinBlurLight(DEPRECATED zënter Versioun 2.6.0)
gridzySkinCard
liewen Virschau
gridzySkinCard
gridzySkinCardLight(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
VariabelDefault WäertInformatiounen
--backgroundrgba(0, 0, 0, .7)erlaabt all CSS Hannergrond Wäert
--colorrgb(255, 255, 255)erlaabt all CSS Faarf Wäert
--text-shadownoneerlaabt all CSS Text-Shadow Wäert
gridzySkinFullOverlay
VariabelDefault WäertInformatiounen
--backgroundrgba(0, 0, 0, .7)erlaabt all CSS Hannergrond Wäert
--colorrgb(255, 255, 255)erlaabt all CSS Faarf Wäert
--text-shadownoneerlaabt all CSS Text-Shadow Wäert
gridzySkinLift
VariabelDefault WäertInformatiounen
--backgroundrgba(0, 0, 0, .7)erlaabt all CSS Hannergrond Wäert
--colorrgb(255, 255, 255)erlaabt all CSS Faarf Wäert
--text-shadow0 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
VariabelDefault WäertInformatiounen
--backgroundrgba(0, 0, 0, .7)erlaabt all CSS Hannergrond Wäert
--colorrgb(255, 255, 255)erlaabt all CSS Faarf Wäert

Dës Haut ënnerstëtzt net --text-shadow

gridzySkinBlur
VariabelDefault WäertInformatiounen
--backgroundrgba(0, 0, 0, .7)erlaabt all CSS Hannergrond Wäert
--colorrgb(255, 255, 255)erlaabt all CSS Faarf Wäert
--text-shadow0 0 10px rgb(0, 0, 0)erlaabt all CSS Text-Shadow Wäert
gridzySkinCard
VariabelDefault WäertInformatiounen
--backgroundrgba(0, 0, 0, 1)erlaabt all CSS Hannergrond Wäert
--colorrgb(255, 255, 255)erlaabt all CSS Faarf Wäert
--text-shadownoneerlaabt 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

  1. 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.
  2. 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 NummBeschreiwung
gridzy
manuell ze setzen
Gridzy fënnt automatesch Elementer mat dëser Klass an initialiséiert se.
gridzyAnimatedGë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 NummBeschreiwung
gridzyItemGëtt gesat soubal den Artikel den Initialiséierungsprozess ufänkt. Wäert ni geläscht ginn.
gridzyItemInitializingGë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.
gridzyItemReadyErsetzt 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.
gridzyItemLoadingGë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.
gridzyItemCompleteErsetzt gridzyItemLoading soubal déi enthale Biller (normalerweis nëmmen eng) voll gelueden sinn. Wäert ni geläscht ginn.
gridzyItemInitialToVisibleGëtt gesat soubal den Artikel déi éischte Kéier ufänkt. Gëtt geläscht soubal den Artikel komplett sichtbar ass.
gridzyItemVisibleGëtt gesat soubal den Artikel voll sichtbar ass. Gëtt geläscht soubal den Artikel ufänkt ze verschwannen.
gridzyItemVisibleToHiddenGëtt gesat soubal den Artikel ufänkt ze verschwannen. Gëtt geläscht soubal den Artikel komplett verstoppt ass.
gridzyItemHiddenGëtt gesat soubal den Artikel komplett verstoppt ass. Gëtt geläscht soubal den Artikel ufänkt ze erschéngen.
gridzyItemHiddenToVisibleGë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.
gridzyItemVisibleToVisibleGë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:

  1. Füügt width an height Attributer un wéi uewen beschriwwen (vergewëssert Iech déi richteg Wäerter ze benotzen)
  2. Ersetzen all src Attributer mat data-gridzylazysrc wéi hei ënnendrënner (wann Dir och srcset Attributer hutt, ersetzt se mat data-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:

  1. Setzt all img Element an en div Element
    (oder an all aner Element - kuckt semantesch HTML fir méi)
  2. Füügt d'Klass gridzyImage un all img Element
<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.
  }
});
Beschreiwung
onBeforeOptionsChangedCallback Funktioun déi direkt opgeruff gëtt ier Dir Optiounen setzt.
onOptionsChangedCallback Funktioun déi direkt no Astellungsoptiounen opgeruff gëtt.
onBeforeRenderCallback Funktioun déi direkt virum Rendering opgeruff gëtt.
onRenderCallback Funktioun déi direkt nom Rendering opgeruff gëtt.

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:

Beschreiwung
gridzyBeforeInitFeier virun der Galerieinitialiséierung.
gridzyInitFeieren no Galerie Initialiséierung.
gridzyBeforeOptionsChangedFeiert virum Opstellung Optiounen.
gridzyOptionsChangedFeiert no Astellungsoptiounen.
gridzyBeforeRenderFeier virum Rendering.
gridzyRenderFeieren no Render-.
Wann Dir Eventer hei verpasst, schéckt w.e.g. eng Ënnerstëtzungsufro .

event.target bitt de Gridzy Container Element.
event.detail.instance bitt d'Gridzy Instanz.

Eventer op Element Elementer gebrannt:

Beschreiwung
gridzyItemBeforeInitFeier virun Element Initialiséierung.
gridzyItemInitFeier no Element Initialiséierung.
gridzyItemLoadingBrennt wann den Artikel ufänkt ze lueden.
gridzyItemReadyBrennt wann den Artikel prett ass fir d'Gitterberechnung. Also den Aspekt Verhältnis ass bekannt, awer d'Bild kann nach ëmmer lueden.
gridzyItemCompleteBrennt wann d'Elementbild voll gelueden ass.
Wann Dir Eventer hei verpasst, schéckt w.e.g. eng Ënnerstëtzungsufro .

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:

Default WäertBeschreiwung
autoInitOnDomReadytrueDetektéiert Elementer mat Klass gridzy beim Luede vun de Säiten an initialiséiert se.

Setbar iwwer Gridzy.setDefaultOptions()
autoInitOnDomMutation
MutationObserver
trueDetektéiert nei Elementer mat Klass gridzy soubal se an der DOM schéngen an initializes hinnen. (zB beim Gebrauch vun Säiteniwwergäng)

Setbar iwwer Gridzy.setDefaultOptions()
autoSyncChildListMutation
MutationObserver
trueEntdeckt ob Kannerelementer (Biller) bäigefüügt oder geläscht ginn, an aktualiséiert d'Gitter automatesch.

Settable via data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
useOptionAttributestrueDefinéiert ob d' data-gridzy- Attributer allgemeng benotzt ginn oder net. Wann dëst false ass, kënnen d'Optiounen nëmmen iwwer de propriétaire API gesat ginn.

Setbar iwwer new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoSyncAttributesMutation
MutationObserver
trueDetektéiert Ännerungen vun data-gridzy- Attributer, an aktualiséiert d'Gitter automatesch. Entdeckt och ob d' gridzyAnimated Klass bäigefüügt oder geläscht gëtt a wann style Ännerungen optrieden. Wann useOptionAttributes false ass, erkennt et nëmmen Ännerunge style .

Settable via data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoSyncChildClassMutation
MutationObserver
trueDetektéiert Ännerungen vun class Attributer vun all Kand Elementer (Biller). Relevant betreffend Filteren.

Settable via data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoSyncImageMutation
MutationObserver

zënter Versioun 2.5.0
trueDetektéiert Ännerungen vun src Attributer vun alle Biller. Relevant wann se mat React oder ähnlechen Bibliothéiken benotzt ginn.

Settable via data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoRenderOnResize
ResizeObserver

zënter Versioun 2.6.0
trueDetektéiert Ännerungen vun der Element Breet. Relevant betreffend reaktiounsfäeger Design. (Virun Versioun 2.6.0 gouf e Fënstergréisst Event Lister benotzt)

Settable via data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()

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();