Wersja 2.x


Bazowe użycie

Przesyłaj pliki Gridzy na swōj serwer i przidej je na swōj witryna (zwykle w sekcyji head):

<link rel="stylesheet" href="gridzy/gridzy.min.css" />
<script src="gridzy/gridzy.min.js"></script>

Przidej kod HTML (w kożdym miyjscu w sekcyji ciała):

<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>

To je wszysko! To je połni funkcjōnalny przikłod. Niyma potrzebno ekstra inicjalizacyjo.

Kōnfiguracyjo

Nojłacniyjszym sposobym na kōnfiguracyjo Gridzy je ino użycie atrybutōw HTML. Trza ino wrazić przed miana ôpcyjōw data-gridzy- . Tak tōż, coby ustawić ôpcyjo spaceBetween , przidej atrybut data-gridzy-spaceBetween .

<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>

Głōwne ôpcyje

Wert domyślnyÔpis
animatetrueÔkryślo, eli animacyje winny być używane w czasie zmiany necu (bez przikłod przi zmianie rozmiaru ôkna przeglōncznika abo przi ustawianiu filtra).
layoutjustifiedDefiniuje użyty ukłod. Gridzy.js 2 ôbsługuje dwa roztōmajte układy justified i waterfall . Kożdy z nich mo włosne ekstra parametry ôpcyje, kere możesz znojś pod tyj tabuli.
filter*Ôkreślo, kere ôbrazy winny być pokozane. Tutaj za wert może być użyty kożdy selektor CSS. Zaôbycz ustawio sie autōmatycznie bez filterControls (patrz dalszo ôpcyjo).
Sprawdź filtry
filterControlsÔkreślo, kere elymynta formy mogōm być używane do filtrowanio ôbrazōw. Za wert może być użyty tutaj kożdy selektor CSS, co wybiyro elymynta formularza HTML.
Sprawdź filtry
autoConsiderScrollBarstrueCoby przewidzieć dostympno szyrokość, jeźli słupki ôbiyranio pokożōm sie abo zniknōm. Dycki zaleca sie ôstawić go na true bodej, iże tyn autōmatyzm niy powoduje problymōw.

Justified układu

Wert domyślnyÔpis
autoFontSizefalseAutōmatycznie aktualizuje włosność srogości czcionki kożdego pola w ôparciu ô ôryginalno srogość pola. Domyślnie włosność srogości czcionki niy ma ustawiōno ekstra.
desiredHeight190Definiuje pragniōno wysokość wierszōw elymyntōw. Rzeczywisto wysokość bydzie porachowano w zoleżności ôd dostympnyj szyrokości i elymyntōw w raji.
hideOnMissingImagetrueUkrywo pola, co zawiyrajōm ôbrazy, co niy mogły być załadowane.
spaceBetween4Definiuje ôdległość miyndzy elymyntami w pikselach.
lastRowAlign
ôd wersyje 2.3.0
justifiedDefiniuje zachowanie ôstatnigo wiersza. Przizwolōne werty to left , center , right i justified .
singleRowAlign
ôd wersyje 2.3.0
justifiedDefiniuje zachowanie, jeźli je ino jedyn pojedynczy wiersz. Przizwolōne werty to left , center , right i justified .
fillLastRow
ôd wersyje 2.1.0
trueUSUSIŌNE ôd wersyje 2.4.0 (STARZŌNY ôd wersyje 2.3.0 )
Ułożo ôbrazy tak, coby ôstatni wiersz bōł dycki do kōńca wypołniōny. Jeźli planujesz dynamicznie przidować ôbrazy, dobrze by było wyłōnczyć to.
Niy mo żodnego wpływu na pojedyncze wiersze (patrz fillSingleRow ).
fillSingleRow
ôd wersyje 2.1.0
trueUSUSIŌNE ôd wersyje 2.4.0 (STARZŌNY ôd wersyje 2.3.0 )
Jeźli je ino jedyn wiersz, to ôn ukłodo ôbrazy w taki spōsōb, coby wiersz bōł dycki do kōńca wypołniōny. Jeźli może sie stać, iże masz ino jedyn abo dwa ôbrazy w galeryji, dobrze by było wyłōnczyć to.

Waterfall układu

Wert domyślnyÔpis
autoFontSizefalseAutōmatycznie aktualizuje włosność srogości czcionki kożdego pola w ôparciu ô ôryginalno srogość pola. Domyślnie włosność srogości czcionki niy ma ustawiōno ekstra.
desiredWidth250Definiuje pragniōno szyrokość kolōmn. Rzeczywisto szyrokość bydzie porachowano w zoleżności ôd dostympnyj szyrokości i liczby kolōmn.
hideOnMissingImagetrueUkrywo pola, co zawiyrajōm ôbrazy, co niy mogły być załadowane.
horizontalOrderfalseDefiniuje, iże elymynta sōm umiyszczōne blank jednym elymyntym w kożdyj kolōnie ôd lewyj do prawyj, a potym zaczyno zaś w nojbarzij lewyj kolōnie niyznoleżnie, w keryj kolōnie je wiyncyj miyjsca. Domyślnie elymynta bydōm dycki umiyszczane we kolōnie ô nojmyńszyj wysokości.
spaceBetween4Definiuje ôdległość miyndzy elymyntami w pikselach.
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.

Wiyncyj zaawansowanych ôpcyjōw

Coby zoboczyć barzij zaawansowane ôpcyje, sprawdź API .

Symantyczny HTML

Nojprostszo struktura HTML Gridzy je ta:

<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>

Jednak Gridzy je barzo elastyczny i możesz użyć bezma kożdyj inkszyj struktury HTML. Je ino pora pōnktōw do rozwożanio:

  • Kożde dziecko elymyntu kōntynera reprezyntuje jedyn elymynt w necu.
  • Tak elymynt kōntynyra, jak i jego dzieci mogōm być leda jakōm zortōm tagu, takim jak ul i li (po prostu rozwożaj resetowanie domyślnych warōnkōw przeglōncznika).
  • Jeźli elymynt img niy ma samym bezpostrzednim dzieckiym, potrzebuje ôn klasy gridzyImage .

Tak tōż je to tyż robiōnco struktura HTML:

<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>

Ôsobliwie jeźli chcesz przidować podpisy, potrzebujesz zaawansowanyj struktury HTML. Coby dowiedzieć sie ô tym wiyncyj, ôbejrzyj Podpisy i Skōry .

Podpisy i skōry

Jeźli chcesz przidać podpisy do swojij galeryje, musisz zdefiniować wyglōnd. Bez to sōm dostympne pewne wczasnij zdefiniowane skōry. Kożdo skōra skłodo sie z pliku CSS. Tyn plik trza przidać ôkrōm głōwnych plikōw Gridzy (zwykle w sekcyji gowy):

<link rel="stylesheet" href="gridzy/skins/gridzySkinClassic/style.min.css" />

Co wiyncyj potrzebujesz zaawansowanyj struktury HTML:

<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>

Jeźli zastanawiasz sie ô strukturze HTML, ôbejrzyj Semantic HTML .

Dlo podpisu możesz użyć leda jakij zorty tagu, ino upewnij sie, iże mo klasa gridzyCaption . Elymynt img potrzebuje klasy gridzyImage .

Powyższy przikłod pokozuje skōra gridzySkinClassic . Coby użyć inkszyj, po prostu zamiyń miano skōry jednym z tych:

Dołōnczōne skōry

Dostympne klasy
prōzno skōra
dobry pōnkt wyjściowy do tworzynio włosnyj skōry
Przeglōnd na żywo
gridzySkinBlank
gridzySkinClassic
Przeglōnd na żywo
gridzySkinClassic
gridzySkinClassicLight(STARZŌNY ôd wersyje 2.6.0)
gridzySkinFullOverlay
Przeglōnd na żywo
gridzySkinFullOverlay
gridzySkinFullOverlayLight(STARZŌNY ôd wersyje 2.6.0)
gridzySkinLift
Przeglōnd na żywo
gridzySkinLift
gridzySkinLiftLight(STARZŌNY ôd wersyje 2.6.0)
gridzySkinMagnifier
funkcyjo zoomu niy ma włōnczōno
Przeglōnd na żywo
gridzySkinMagnifier
gridzySkinMagnifierLight(STARZŌNY ôd wersyje 2.6.0)

wszyske powyższe skōry potrzebujōm ino pliku CSS, ale sōm ekstra skōry, co tyż potrzebujōm pliku JavaScript:

<link rel="stylesheet" href="gridzy/skins/gridzySkinBlur/style.min.css" />
<script src="gridzy/skins/gridzySkinBlur/script.min.js"></script>
Dostympne klasy
gridzySkinBlur
niy działo w IE
Przeglōnd na żywo
gridzySkinBlur
gridzySkinBlurLight(STARZŌNY ôd wersyje 2.6.0)
gridzySkinCard
Przeglōnd na żywo
gridzySkinCard
gridzySkinCardLight(STARZŌNY ôd wersyje 2.6.0)

Ôpcyje skōry

Ôd wersyje 2.6.0 sōm Ôpcyje kōnfigurowanio wbudowanych skōr. Zależnie ôd kōnkretnyj skōry możesz ustawić farba zadku, farba tekstu i ciyń tekstu. Trza ino użyć niyôbyczajowych włosności CSS, jak widzisz tutaj:

<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>

Sprawdź tu ôbsługiwane zmiynne i werty domyślne dlo kożdyj skōry:

gridzySkinClassic
ZmiynnoWert domyślnyInformacyjo
--backgroundrgba(0, 0, 0, .7)przizwolo na leda jaki wert zadku CSS
--colorrgb(255, 255, 255)przizwolo na leda jaki wert farby CSS
--text-shadownoneprzizwolo na leda jaki wert ciynia tekstu CSS
gridzySkinFullOverlay
ZmiynnoWert domyślnyInformacyjo
--backgroundrgba(0, 0, 0, .7)przizwolo na leda jaki wert zadku CSS
--colorrgb(255, 255, 255)przizwolo na leda jaki wert farby CSS
--text-shadownoneprzizwolo na leda jaki wert ciynia tekstu CSS
gridzySkinLift
ZmiynnoWert domyślnyInformacyjo
--backgroundrgba(0, 0, 0, .7)przizwolo na leda jaki wert zadku CSS
--colorrgb(255, 255, 255)przizwolo na leda jaki wert farby CSS
--text-shadow0 0 10px rgb(0, 0, 0), 0 0 20px rgb(0, 0, 0), 0 0 30px rgb(0, 0, 0)przizwolo na leda jaki wert ciynia tekstu CSS
gridzySkinMagnifier
ZmiynnoWert domyślnyInformacyjo
--backgroundrgba(0, 0, 0, .7)przizwolo na leda jaki wert zadku CSS
--colorrgb(255, 255, 255)przizwolo na leda jaki wert farby CSS

Ta skōra niy ôbsługuje --text-shadow

gridzySkinBlur
ZmiynnoWert domyślnyInformacyjo
--backgroundrgba(0, 0, 0, .7)przizwolo na leda jaki wert zadku CSS
--colorrgb(255, 255, 255)przizwolo na leda jaki wert farby CSS
--text-shadow0 0 10px rgb(0, 0, 0)przizwolo na leda jaki wert ciynia tekstu CSS
gridzySkinCard
ZmiynnoWert domyślnyInformacyjo
--backgroundrgba(0, 0, 0, 1)przizwolo na leda jaki wert zadku CSS
--colorrgb(255, 255, 255)przizwolo na leda jaki wert farby CSS
--text-shadownoneprzizwolo na leda jaki wert ciynia tekstu CSS

wszyske wczasnij zdefiniowane skōry ôbsługujōm ino proste podpisy tekstowe. Możesz stworzić swoje barzo włosne i barzij słożōne skōry. Proszōm ôbejrzeć Style Gridzy .

Styl Gridzy

Jeźli żodno wczasnij zdefiniowano skōra niy sztimuje do twojich potrzeb, możesz stworzić włosno skōra.

Nojłacniyjszym sposobym je nojprzōd skopiowanie istniyjōncyj skōry i przipasowanie jij do włosnych potrzeb. Wczasnij zdefiniowany gridzySkinBlank skōry zaôbycz zapewniołby dobry podstaw, jak tyż dobro dokumyntacyjo w pliku CSS:

/** 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;
}

W pliku CSS znojdziesz klasy gridzySkinBlank , gridzyImage i gridzyCaption . Sama Gridzy niy potrzebuje tych klas. Ône sōm używane ino do stylizacyje, tōż możesz je usuniynć abo zmiynić miano, jeźli chcesz.

Ôkrōm tego znojdziesz klasa CSS gridzyItem . Gridzy ustawio ta klasa autōmatycznie na wszyske bezpostrzednie dzieci głōwnego elymyntu kōntynera. Tak tōż możesz użyć tyj klasy do stylizacyje przedmiotōw swojij galeryje.

Ważne rzeczy

  1. Treść przedmiotu winna być w połni ryaktywno. Załōżmy, iże srogość elymyntu zdecydowanie sie zmiyni. Użyj wertōw procyntowych zamiast wertōw pikselōw. I ôbejrzyj ôpcyjo układu Gridzy autoFontSize , co wiōnże srogość czcionki ze srogościōm pola elymyntu.
  2. Kożdy elymynt winiyn mieć dobrze zdefiniowany spōłczynnik formy. Spōłczynnik formy przedmiotu nikej sie niy zmiyni i je przidajny do ôbliczanio necu. Tak że jeźli elymynt niy mo autōmatycznie dobrze zdefiniowanyj proporcyje, zdefiniuj go ryncznie (bp. bez css).

W niykerych przipadkach może być łacniyj stworzić styl treści elymyntōw przed inicjalizacyjōm Gridzy'ego. Po prostu usuń tymczasowo klasa gridzy abo plik javascript Gridzy.

To je wszysko! To je wszysko, co potrzebujesz, coby zbudować swoja włosno skōra. Wiynkszość wczasnij zdefiniowanych skōr niy używo wiyncyj aniżeli to.

Ale może być wiyncyj, jeźli chcesz ...

Zaawansowane skōry

Gridzy używo wiyncyj klas CSS aniżeli ino gridzyItem . Wiynkszość z nich bydzie ustawiōno autōmatycznie i możesz je używać tyż do stylizacyje.

Klasy głōwnych kōntynyrōw

Miano klasyÔpis
gridzy
do ustawiynio ryncznie
Gridzy autōmatycznie znojduje elymynta z tōm klasōm i inicjalizuje je.
gridzyAnimatedBydzie ustawiōne autōmatycznie, jeźli ôpcyjo animate je true . Jeźli ta klasa je ustawiōno ryncznie, ôpcyjo animate tyż stanie sie autōmatycznie true (z wyjōntkym tego, jeźli je klarownie ustawiōno na false ).

Klasy przedmiotōw

Miano klasyÔpis
gridzyItemBydzie ustawiōne, jak ino elymynt zacznie proces inicjalizacyje. Nikej niy bydzie usuniynte.
gridzyItemInitializingBydzie ustawiōne, jak ino elymynt zacznie proces inicjalizacyje. Bydzie zastōmpiōny gridzyItemReady , jak ino elymynt bydzie w połni zainicjalizowany. Niy ôznaczo, iże ôbrazy sōm w połni załadowane (patrz gridzyItemLoading ), ale elymynt je gotowy do widzialności.
gridzyItemReadyZastōmpi gridzyItemInitializing , jak ino elymynt je w połni zainicjalizowany. Nikej niy bydzie usuniynte. Niy ôznaczo, iże ôbrazy sōm w połni załadowane (patrz gridzyItemComplete ), ale elymynt je gotowy do widzialności.
gridzyItemLoadingBydzie ustawiōne, jak ino elymynt zacznie proces inicjalizacyje. Bydzie zastōmpiōne gridzyItemComplete , jak ino zawarte ôbrazy (zwykle ino jedyn) bydōm w połni załadowane.
gridzyItemCompleteZastōmpi gridzyItemLoading , jak ino zawarte ôbrazy (zwykle ino jedyn) bydōm w połni załadowane. Nikej niy bydzie usuniynte.
gridzyItemInitialToVisibleBydzie ustawiōne, jak ino elymynt zacznie sie ukazować po piyrszy roz. Bydzie usuniynte, jak ino przedmiot bydzie do kōńca widzialny.
gridzyItemVisibleBydzie ustawiōny, jak ino przedmiot bydzie w połni widzialny. Bydzie usuniynte, jak ino przedmiot zacznie znikać.
gridzyItemVisibleToHiddenBydzie ustawiōne, jak ino przedmiot zacznie znikać. Bydzie usuniynte, jak ino przedmiot bydzie do kōńca ukryty.
gridzyItemHiddenBydzie ustawiōne, jak ino przedmiot bydzie do kōńca ukryty. Bydzie usuniynte, jak ino przedmiot zacznie sie ukazować.
gridzyItemHiddenToVisibleBydzie ustawiōne, jak ino elymynt zacznie sie ukazować (z wyjōntkym ukazowanio sie po piyrszy roz – patrz klasa gridzyItemInitialToVisible ). Bydzie usuniynte, jak ino przedmiot bydzie do kōńca widzialny.
gridzyItemVisibleToVisibleBydzie ustawiōny jak coś w necu sie zmiyni, ale sōm przedmiot bōł i ôstowo widzialny. Bydzie usuniynte jak ino animacyjo zmian je skōńczōno.

Domyślnie skaźnik procesu jak tyż animacyje dlo pokozujōncych sie i znikajōncych ôbrazōw sōm wczasnij zdefiniowane bez głōwny plik CSS Gridzy.

Społym z tymi wyżyj spōmnianymi klasami CSS możesz stylizować włosny wskoźnik procesu i animacyje. Ôdważaj sie ôbejrzeć głōwny plik CSS Gridzy, coby pojōńć, co byś musioł przekroczyć. Niy boj sie, wszysko je tam dobrze udokumyntowane.

Ôptymalizuj ładowanie

Jeźli użyjesz mocki ôbrazōw, może być dobro idyjo pōmōc Gridzy warcij zbudować nec.

Zapobiygaj przeskokaniu ôbrazōw

Gridzy absolutnie potrzebuje proporcyje wszyskich ôbrazōw, coby porachować nec. Te fakty skutkujōm skokaniym elymyntōw, jeźli niykere ôbrazy sōm gotowe, a inksze niy. Czym wiyncyj ôbrazōw, tym barzij nerwowo może być tyn efekt.

Coby zapobiyc tymu zachowaniu, po prostu ustawić atrybuty width i height do wszyskich elymyntōw img . Ważne je, coby ustawić ôdpednie werty dlo kożdego kōnkretnego ôbrazu, w ôpacznym razie ôbrazy byłyby zniykształcōne. Noleżnymi wertami sōm ôryginalno szyrokość i wysokość ôdpednigo ôbrazu:

<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>

Potym Gridzy może zaroz porachować nec bez potrzeby znanio rzeczywistych miar ôbrazōw.

Leniwe ładowanie

Coby załadować ino ôbrazy, co sōm w widzialnym ôbszarze widzynio, wykōnaj te kroki:

  1. Wkludź atrybuty width i height , jak ôpisano powyżyj (upewnij sie, iże użyjesz ôdpednich wertōw)
  2. Zamiyń wszyske atrybuty src data-gridzylazysrc jak pokozano niżyj (jeźli masz tyż atrybuty srcset , zamiyń je 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>

Po tych krokach ôbrazy załadujōm sie, jak ino sōm blisko abo we postrzodku ôkryngu widzynio.

Wskoźnik procesu

Wskoźnik procesu to mało animowano ikōna, kero pokozuje sie w czasie załadowanio ôbrazu. Jeźli użyjesz podpisōw i skōr , wskoźnik procesu bydzie pokozany autōmatycznie. W ôpacznym razie potrzebujesz jakichś regulacji:

  1. Wkludź kożdy elymynt img do elymyntu div
    (abo w jakiko ino inkszy elymynt – patrz symantyczny HTML po wiyncyj)
  2. Przidej klasa gridzyImage do kożdego elymyntu img
<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>

Po tym winno sie zoboczyć wskoźniki procesu, jeźli ôbrazy potrzebujōm czasu na załadowanie.

Filtry

Filtry w Gridzy sōm doś proste, ale potynżne. Niyzoleżnie ôd tego, jakigo filtra potrzebujesz, je barzo prawdopodobne, iże je ôn ryalizowalny. Wszysko, czego potrzebujesz, to trocha CSS i pora elymyntōw formularza HTML ...

Ôto funkcjōnalny przikłod:

<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>

Budujmy to krok po kroku

1. Nojprzōd potrzebujymy ajnfachowyj struktury HTML Gridzy i ustawić miana klas do wszyskich elymyntōw galeryje, coby potym mogły je filtrować

<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>

W tym przikładzie używōmy ino jednyj klasy dlo kożdego elymyntu. Ale możesz tyż ustawić moc klas dlo jednego elymyntu, jeźli tyn elymynt winno być znojdzialny bez moc filtrōw.

2. Potym przidajymy jakeś guziki, za pōmocōm kerych mogymy potym zmiynić filtry

<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>

Zamiast knopkōw możesz tyż użyć inkszych elymyntōw formularza, takich jak pola wyboru, knopki radyjowe, wybrane pola i tak dalij.

Jak widzisz, werty knopkōw sōm zwykłymi selektorami CSS. Jak ino skōńczymy, klikniyńcie na taki guzik pokoże ôbrazy, co ôdpadajōm tymu selektorowi CSS. Technicznie ôn po prostu ustawio ôpcyjo filter na tyn wert.

Możesz tyż użyć moc barzij słożōnych selektorōw. Bez przikłod :not(.animals) by tyż fungowało, tak jak .animals.people i .animals, .people .

3. Na kōniec zakapsulujymy guziki w kōntynyrze div i łōnczymy je z galeryjōm Gridzy, bez ustawiynie ôpcyje filterControls :

<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>

Jak widzisz, używōmy tyż selektora CSS do ôpcyje filterControls . Kōntynōr div z atrybutym id suży ino do łacniyjszego ôbranio guzikōw bez tyn selektōr CSS.

To je wszysko!

Jeźli wolisz rozwiōnzanie JavaScript, sprawdź API .

API

Chocioż Gridzy mo włosne API, wiynkszość rzeczy idzie zrobić bez niego, po prostu bez manipulowanie DOM. Gridzy zauważy to i ustawi nec. Ale je tyż barzo potynżne API ...

Manipulowanie DOM

Do wszyskich manipulacyji Modelym Ôbiektōw Dokumyntu (DOM) nojprzōd potrzebujymy elymyntu kōntynera:

// get the container element
var gridzyElement = document.querySelector('.gridzy');

Przidej ôbrazy

Ważne je, coby w połni zbudować i wypołnić nowy elymynt podstawowy przed przidaniym go do elymyntu kōntynera. W ôpacznym razie Gridzy niy może wykryć ôdpednich wymiarōw.

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

Usuń ôbrazy

// remove the first image
gridzyElement.removeChild(gridzyElement.firstElementChild);

Zmiyń ôpcyje

// 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');

Wiyncyj ô manipulowaniu DOM możesz znojś w dokumentach internetowych MDN . Je tyż dostympne Wkludzynie do DOM .

Włosne API

Coby użyć API, potrzebujymy nojprzōd instancyje Gridzy, co je powiōnzano z elymyntym kōntynera Gridzy:

// get the Gridzy instance
var gridzyInstance = document.querySelector('.gridzy').gridzy;

Zdobōrz ôpcyjo

// get the value of a single option
var currentLayout = gridzyInstance.getOption('layout');

Zdobōrz wszyske ôpcyje

// get all option values as an object
var currentOptions = gridzyInstance.getOptions();

Ustaw ôpcyje

// set specific option values
gridzyInstance.setOptions({
  spaceBetween: 10,
  layout: 'waterfall'
});

// or reset options to their default values
gridzyInstance.setOptions({
  spaceBetween: null,
  layout: null
});

Zastosuj filtr

Zastosowanie filtra to ino ustawiynie filter ôpcyje, co może być leda jakim ważnym selektorym CSS:

// 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'
});

Przidej funkcyje ôdwołanio

PRZASTARUJŌNE ôd wersyje 2.4.0
Zamiast tego użyj modernych i barzij elastycznych Wydarzeń . Szczegōły patrz dalszo sekcyjo.

Gridzy.js 2 ôbsługuje niykere ôpcyje dlo funkcyji ôdwołanio. Ône mogōm być ustawiōne ino bez proprietarne API, ale podobnie jak inksze ôpcyje:

// 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.
  }
});
Ôpis
onBeforeOptionsChangedFunkcyjo callback, kero je wywołano bezpostrzednio przed ustawiyniym ôpcyjōw.
onOptionsChangedFunkcyjo callback, kero je wywołowano bezpostrzednio po ustawiyniu ôpcyjōw.
onBeforeRenderFunkcyjo callback, kero je wywołano bezpostrzednio przed renderowaniym.
onRenderFunkcyjo callback, kero je wywołano bezpostrzednio po renderowaniu.

Użyj wydarzyń

ôd wersyje 2.4.0

Możesz używać zdarzyń Gridzy akuratnie jak zwykłe zdarzenia JavaScript:

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.
});

Niykere zdarzynia sōm wypalane na elymyncie kōntynera Gridzy, a inksze zdarzynia sōm wypalane na poszczegōlnych elymyntach elymyntōw we elymyncie kōntynera.

Wydarzynia wytworzōne na elymyncie kōntynyra Gridzy:

Ôpis
gridzyBeforeInitÔgniy przed inicjalizacyjōm galeryje.
gridzyInitÔgniy po inicjalizacyji galeryje.
gridzyBeforeOptionsChangedÔdpala przed ustawiyniym ôpcyjōw.
gridzyOptionsChangedÔdpala po ustawiyniu ôpcyjōw.
gridzyBeforeRenderÔgniy przed renderowaniym.
gridzyRenderÔgniy po renderowaniu.
Jeźli przeoczysz tutaj jakeś wydarzenia, proszōm wysłać zapytanie ô wsparcie .

event.target zapewnio elymynt kōntynera Gridzy.
event.detail.instance zapewnio instancyjo Gridzy'ego.

Wydarzynia wytworzōne na elymyntach przedmiotu:

Ôpis
gridzyItemBeforeInitÔgniywo przed inicjalizacyjōm przedmiotu.
gridzyItemInitÔgniywo po inicjalizacyji przedmiotu.
gridzyItemLoadingSpołnio sie, kej przedmiot zaczyno sie ładować.
gridzyItemReadyWypala, kej przedmiot je gotowy do ôbliczanio necu. Tak tōż spōłczynnik formy je znany, ale ôbraz może durch sie załadować.
gridzyItemCompleteWyłōnczo sie, kej ôbraz przedmiotu je w połni załadowany.
Jeźli przeoczysz tutaj jakeś wydarzenia, proszōm wysłać zapytanie ô wsparcie .

event.target zapewnio ôdpedni elymynt elymyntu.
event.detail.instance zapewnio instancyjo Gridzy'ego.

API – Globalny

Sōm pewne funkcyje, co sōm niyznoleżne ôd przipodkōw Gridzy'ego. Tak tōż niy musimy wczasnij dostać instancyje.

Zdobōrz ôpcyjo domyślno

// get the default value of a single option
var defaultLayout = Gridzy.getDefaultOption('layout');

Zdobōrz wszyske ôpcyje domyślne

// 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');

Ustaw ôpcyje domyślne

To niy ustawio ôpcyjōw wszyskich już zainicjalizowanych instancyji Gridzy, ale definiuje podstawa dlo nowych instancyji. Jeźli jednak ôpcyjo istniyjōncego instancyje byłaby resetowano bez wert null , to użyłaby nowego wertu domyślnego.

// set default option values
Gridzy.setDefaultOptions({
  spaceBetween: 10,
  layout: 'waterfall'
});

Możesz użyć tego do ustawianio ôpcyjōw globalnie, jeźli zawołasz go przed gotowym DOM. Tak że już niy musiołbyś ustawiać ôpcyjōw za atrybuty.

Autōmatyzmy

Dokōł wszyske autōmatyzmy Gridzy.js 2 sōm aktywne, niy ma potrzeby pōniższych metod. Ale autōmatyzmy idzie wyłōnczyć, coby używać Gridzy w barzij tradycyjny spōsōb:

// 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
});

Niykere z tych ôpcyjōw niy mogōm być ustawiōne bez atrybuty data-gridzy- abo bez setOptions() , z logicznych powodōw:

Wert domyślnyÔpis
autoInitOnDomReadytrueWykrywo elymynta z klasōm gridzy przi załadowaniu strōny i inicjalizuje je.

Możliwe do ustawiynio bez Gridzy.setDefaultOptions()
autoInitOnDomMutation
Ôbserwatōrmutacyje
trueWykrywo nowe elymynta z klasōm gridzy , jak ino sie ukazujōm w DOM i inicjalizuje je. (bp. przi używaniu przechodōw strōn)

Możliwe do ustawiynio bez Gridzy.setDefaultOptions()
autoSyncChildListMutation
Ôbserwatōrmutacyje
trueWykrywo, eli elymynta podstawowe (ôbrazy) sōm przidowane abo usuwane, i autōmatycznie aktualizuje nec.

Ustawialny bez data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
useOptionAttributestrueDefiniuje, eli atrybuty data-gridzy- sōm ôgōlnie używane abo niy. Jeźli je to false ôpcyje mogōm być ustawiōne ino bez proprietarne API.

Możliwe ustawiać bez new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoSyncAttributesMutation
Ôbserwatōrmutacyje
trueWykrywo zmiany atrybutōw data-gridzy- i autōmatycznie aktualizuje nec. Wykrywo tyż, eli klasa gridzyAnimated je przidano abo usuniynto i eli wystympujōm zmiany atrybutu style . Jeźli useOptionAttributes je false , to wykrywo ino zmiany atrybutōw style .

Ustawialny bez data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoSyncChildClassMutation
Ôbserwatōrmutacyje
trueWykrywo zmiany atrybutōw class wszyskich elymyntōw podstawowych (ôbrazy). Aktualne w ôdniesiyniu do filtrōw.

Ustawialne bez data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoSyncImageMutation
Ôbserwatōrmutacyje

ôd wersyje 2.5.0
trueWykrywo zmiany atrybutōw src wszyskich ôbrazōw. Relevantne, kej je używane z React abo podobnymi bibliotekami.

Ustawialne bez data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoRenderOnResize
Zmiana rozmiaru ôbserwatora

ôd wersyje 2.6.0
trueWykrywo zmiany szyrokości elymyntu. Aktualne w ôdniesiyniu do ryaktywnego projektu. (Przed wersyjōm 2.6.0 używano było suchocza zdarzyń zmiany rozmiaru ôkna)

Ustawialne bez data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()

Inicjalizuj ryncznie

// initialize a new Gridzy instance
var gridzyInstance = new Gridzy(document.querySelector('.gridzy'), {
  spaceBetween: 10,
  layout: 'waterfall'
});

Zniszcz instancyjo

Mynij wiyncyj, ôpaczność inicjalizacyje Gridzy'ego.

gridzyInstance.destroy();
gridzyInstance = null;

Synchronizować lista dzieci ryncznie

// after child elements (images) are added to or removed from the DOM.
gridzyInstance.syncChildList();

Synchronizacyjo pojedynczego elymyntu ryncznie

Zaôbycz niy potrzebne, z wyjōntkym barzo rzodkich przipodkōw.

// after child elements (images) are added to the DOM and only one of them should be synced to Gridzy.
gridzyInstance.syncChild(childElement);

Synchronizacyjo atrybutōw ryncznie

Noleży pamiyntać, iże ôpcyjo useOptionAttributes musi być true do tego.

// after data-gridzy- attributes have changed
gridzyInstance.syncAttributes();

Renderowanie siyły

Zaôbycz niyma potrzebne, nawet jeźli wszyske autōmatyzmy sōm wyłōnczōne

gridzyInstance.render();