Inguqulo 2.x


Ukusetjenziswa okusisekelo

Layisha amafayela we-Gridzy kuseva yakho bese uwafaka kuwebhusayithi yakho (ngokuvamileko esigabeni sehloko):

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

Faka ikhodi ye-HTML (nanyana kukuphi esigabeni somzimba):

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

Yilokho! Lokho sibonelo esisebenzako. Akutlhogeki ukuthoma okungezelelweko.

Ukuhlelwa

Indlela elula yokuhlela i-Gridzy, kusebenzisa iimpawu ze-HTML. Utlhoga ukufaka isiqalo samabizo wokukhetha nge data-gridzy- . Njeke, ukusetha inketho spaceBetween , vele ufake imfanelo 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>

Iinkhetho ezikulu

Inani elijwayelekilekoIhlathululo
animatetrueInquma bona iinthombe kufanele zisetjenziswe lokha igridi nayitjhugulukako (ngokwesibonelo, lokha nakutjhugululwa ubukhulu befasitela lesiphequluli nofana lokha nakubekwa isihlungi).
layoutjustifiedIhlathulula ukuhleleka okusetjenzisiweko. I-Gridzy.js 2 isekela amalayini amabili ahlukileko justified kanye no waterfall . Ngayinye yazo inamapharamitha wayo wokukhetha angezelelweko, ongawathola ngaphasi kwetafula.
filter*Inquma bona ngiziphi iinthombe okufanele zitjengiswe. Nanyana ngisiphi isikhethi se-CSS singasetjenziswa njengenani lapha. Ngokuvamileko isethwa ngokuzenzakalelayo nge filterControls (bona inketho elandelako).
Hlola ama-Filters
filterControlsInquma bona ngiziphi izakhi zefomu ezingasetjenziswa ukuhlunga iinthombe. Nanyana ngisiphi isikhethi se-CSS, esikhetha ama-elementi wefomu le-HTML, singasetjenziswa njengenani lapha.
Hlola ama-Filters
autoConsiderScrollBarstrueUkubikezela ububanzi obukhona nangabe imigoqo yokuskrola ivela nofana inyamalale. Kuhlale kunconywa bona uyitjhiye true ngaphandle kobana ukuzenzakalela lokhu kubanga imiraro.

Justified Iinkhetho zokuhleleka

Inani elijwayelekilekoIhlathululo
autoFontSizefalseIvuselela ngokuzenzakalelako ubukhulu befonti yebhokisi ngalinye ngokuya ngobukhulu bebhokisi lokuthoma. Ngokuzenzakalelayo ubukhulu befonti abusethwa ngokucacile.
desiredHeight190Ihlathulula ukuphakama okufunekako kwemigqa yezinto. Ukuphakama kwamambala kuzokubalwa ngokuya ngobubanzi obukhona kanye nama-elementi emgqeni.
hideOnMissingImagetrueIfihla amabhokisi aneenthombe ezingakghoni ukulayishwa.
spaceBetween4Ihlathulula ibanga hlangana nama-elementi ngamaphikseli.
lastRowAlign
kusukela ngenguqulo 2.3.0
justifiedIhlathulula ukuziphatha komugqa wokugcina. Amanani avunyelweko left , center , right kanye justified .
singleRowAlign
kusukela ngenguqulo 2.3.0
justifiedIhlathulula ukuziphatha nangabe kunomjeje munye kwaphela. Amanani avunyelweko left , center , right kanye justified .
fillLastRow
kusukela ngenguqulo 2.1.0
trueKUSUSIWE kusukela ngenguqulo 2.4.0 (IHLAHLIWE kusukela kuhlobo 2.3.0 )
Ihlela iinthombe ukwenzela bona umugqa wokugcina uhlale ugcwele ngokupheleleko. Nawuhlela ukufaka iinthombe ngokuguquguqukako, kungaba mqondo omuhle ukuvala lokhu.
Akunamthelela emigqeni eyodwa (bona fillSingleRow ).
fillSingleRow
kusukela kuhlobo 2.1.0
trueKUSUSIWE kusukela ngenguqulo 2.4.0 (IHLAHLIWE kusukela kuhlobo 2.3.0 )
Nangabe kunomugqa munye kwaphela, ihlela iinthombe ukwenzela bona umugqa uhlale ugcwele ngokupheleleko. Nangabe kungenzeka bona ube nesithombe sinye nofana ezimbili egalari, kungaba mbono omuhle ukuvala lokhu.

Waterfall Iinkhetho zokuhleleka

Inani elijwayelekilekoIhlathululo
autoFontSizefalseIvuselela ngokuzenzakalelako ubukhulu befonti yebhokisi ngalinye ngokuya ngobukhulu bebhokisi lokuthoma. Ngokuzenzakalelayo ubukhulu befonti abusethwa ngokucacile.
desiredWidth250Ihlathulula ububanzi obufunekako bamakholomu. Ububanzi bamambala buzokubalwa ngokuya ngobubanzi obukhona kanye nenani lamakholomu.
hideOnMissingImagetrueIfihla amabhokisi aneenthombe ezingakghoni ukulayishwa.
horizontalOrderfalseIhlathulula bona izakhi zibekwe ngokuqinileko into yinye ekholomu ngayinye ukusuka ngesinceleni ukuya kwesokudla, bese ithoma godu ekholomu yangesencele khulu kungakhathaliseki bona ngiyiphi ikholomu enendawo enengi. Ngokuzenzakalelayo izakhi zizokuhlala zibekwa kukholomu enobude obuncani khulu.
spaceBetween4Ihlathulula ibanga hlangana nama-elementi ngamaphikseli.
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.

Iinkhetho ezinengi ezithuthukisiweko

Ukuthola ezinye iindlela ezithuthukileko, qala i -API .

I-HTML ye-Semantic

Isakhiwo se-HTML esilula se-Gridzy ngilesi:

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

Kodwana, i-Gridzy iyatjhuguluka begodu ungasebenzisa nanyana ngisiphi isakhiwo se-HTML. Kunamaphuzu ambalwa ekufuze uwacabangele:

  • Umntwana ngamunye we-elementi yesitja ujamele into yinye kugridi.
  • Kokubili into yesitja nabantwana bayo kungaba ngiliphi ihlobo lethegi, njenge ul ne li (cabangela ukusetha kabutjha ukuzenzakalelako kwesiphequluli).
  • Nangabe into img ingasi umntwana oqondileko, idinga iklasi ye gridzyImage .

Njeke lokhu kubuye kube yisakhiwo se-HTML esisebenzako:

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

Khulukhulu nangabe ufuna ukungezelela amagama, udinga isakhiwo se-HTML esithuthukileko. Ukufunda kabanzi ngakho, qala ama-Captions & Skins .

Amagama abhalwe phasi neenkhumba

Nawufuna ukufaka amagama abhalwe phasi egalari yakho, kufuze uhlathulule ukubukeka. Ngalokho-ke, ezinye iinkhumba ezihlathululwe ngaphambilini ziyatholakala. Isikhumba ngasinye esinefayela le-CSS. Utlhoga ukufaka ifayela le ngaphezu kwamafayela we-Gridzy (ngokuvamileko esigabeni sehloko):

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

Ukudlula lapho udinga isakhiwo se-HTML esithuthukileko:

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

Nawuzibuza ngesakhiwo se-HTML, qala i-HTML ye-Semantic .

Ngesihloko ungasebenzisa nanyana ngiliphi ihlobo lethegi, qiniseka bona lineklasi ye gridzyCaption . Isici img sidinga iklasi ye gridzyImage .

Isibonelo esingenhla sikutjengisa isikhumba gridzySkinClassic . Ukusebenzisa ehlukileko, tjhugulula ibizo lesikhumba ngelinye lalawa:

Iinkhumba ezifakiweko

Amaklasi atholakalako
gridzySkinBlank
indawo ehle yokuthoma yokwenza isikhumba sakho
ukubuka ngaphambilini bukhoma
gridzySkinBlank
gridzySkinClassic
ukubuka ngaphambilini bukhoma
gridzySkinClassic
gridzySkinClassicLight(IHLAHLIWE kusukela kuhlobo 2.6.0)
gridzySkinFullOverlay
ukubuka ngaphambilini bukhoma
gridzySkinFullOverlay
gridzySkinFullOverlayLight(IHLAHLIWE kusukela kuhlobo 2.6.0)
gridzySkinLift
ukubuka ngaphambilini bukhoma
gridzySkinLift
gridzySkinLiftLight(IHLAHLIWE kusukela kuhlobo 2.6.0)
gridzySkinMagnifier
ukusebenza kokusondeza akufakiwe
ukubuka ngaphambilini bukhoma
gridzySkinMagnifier
gridzySkinMagnifierLight(IHLAHLIWE kusukela kuhlobo 2.6.0)

Zoke iinkhumba ezingenhla zitlhoga ifayela le-CSS kwaphela, kodwana kunezinye iinkhumba ezitlhoga ifayela le-JavaScript:

<link rel="stylesheet" href="gridzy/skins/gridzySkinBlur/style.min.css" />
<script src="gridzy/skins/gridzySkinBlur/script.min.js"></script>
Amaklasi atholakalako
gridzySkinBlur
ayisebenzi ku-IE
ukubuka ngaphambilini bukhoma
gridzySkinBlur
gridzySkinBlurLight(IHLAHLIWE kusukela kuhlobo 2.6.0)
gridzySkinCard
ukubuka ngaphambilini bukhoma
gridzySkinCard
gridzySkinCardLight(IHLAHLIWE kusukela kuhlobo 2.6.0)

Iinkhetho zesikhumba

Kusukela kuhlobo 2.6.0 kuneenkhetho zokuhlela iinkhumba ezakhelwe ngaphakathi. Ngokuya ngesikhumba esithileko ungasetha umbala wangemuva, umbala womtlolo nesithunzi somtlolo. Kufanele usebenzise izakhiwo ze-CSS njengombana ubona lapha:

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

Hlola amatjhuguluko asekelweko kanye namanani akhethiweko wesikhumba ngasinye lapha:

gridzySkinClassic
OkuguquguqukakoInani elijwayelekilekoIlwazi
--backgroundrgba(0, 0, 0, .7)ivumela nanyana ngiyiphi inani langemuva le-CSS
--colorrgb(255, 255, 255)ivumela nanyana ngiyiphi inani lombala we-CSS
--text-shadownoneivumela nanyana ngiliphi inani lomthunzi we-CSS
gridzySkinFullOverlay
OkuguquguqukakoInani elijwayelekilekoIlwazi
--backgroundrgba(0, 0, 0, .7)ivumela nanyana ngiyiphi inani langemuva le-CSS
--colorrgb(255, 255, 255)ivumela nanyana ngiyiphi inani lombala we-CSS
--text-shadownoneivumela nanyana ngiliphi inani lomthunzi we-CSS
gridzySkinLift
OkuguquguqukakoInani elijwayelekilekoIlwazi
--backgroundrgba(0, 0, 0, .7)ivumela nanyana ngiyiphi inani langemuva le-CSS
--colorrgb(255, 255, 255)ivumela nanyana ngiyiphi inani lombala we-CSS
--text-shadow0 0 10px rgb(0, 0, 0), 0 0 20px rgb(0, 0, 0), 0 0 30px rgb(0, 0, 0)ivumela nanyana ngiliphi inani lomthunzi we-CSS
gridzySkinMagnifier
OkuguquguqukakoInani elijwayelekilekoIlwazi
--backgroundrgba(0, 0, 0, .7)ivumela nanyana ngiyiphi inani langemuva le-CSS
--colorrgb(255, 255, 255)ivumela nanyana ngiyiphi inani lombala we-CSS

Isikhumba lesi asisekeli --text-shadow

gridzySkinBlur
OkuguquguqukakoInani elijwayelekilekoIlwazi
--backgroundrgba(0, 0, 0, .7)ivumela nanyana ngiyiphi inani langemuva le-CSS
--colorrgb(255, 255, 255)ivumela nanyana ngiyiphi inani lombala we-CSS
--text-shadow0 0 10px rgb(0, 0, 0)ivumela nanyana ngiliphi inani lomthunzi we-CSS
gridzySkinCard
OkuguquguqukakoInani elijwayelekilekoIlwazi
--backgroundrgba(0, 0, 0, 1)ivumela nanyana ngiyiphi inani langemuva le-CSS
--colorrgb(255, 255, 255)ivumela nanyana ngiyiphi inani lombala we-CSS
--text-shadownoneivumela nanyana ngiliphi inani lomthunzi we-CSS

Zoke iinkhumba ezihlathululwe ngaphambilini zisekela amagama alula womtlolo. Ungenza izikhumba zakho eziyinkimbinkimbi. Sibawa uqale i -Style Gridzy .

Isitayela Gridzy

Nangabe kungekho sikhumba esihlelwe ngaphambilini esifanelana neendingo zakho, ungazitayela esakho.

Indlela elula kukuthi uqale ngokukopa isikhumba esikhona bese usivumelanisa neendingo zakho. I gridzySkinBlank yesikhumba esihlathululwe ngaphambilini ivamise ukunikela isisekelo esihle kanye namadokhumende amahle kufayela le-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;
}

Kufayela le-CSS uzokufumana amaklasi gridzySkinBlank , gridzyImage kanye ne gridzyCaption . I-Gridzy ngokwayo ayiwatlhogi amakilasi la. Zisetjenziselwa ukwenza isitayela kwaphela begodu ungazisusa nofana uzibize kabutjha nangabe uyathanda.

Phezu kwalokho uzokufumana i-CSS class gridzyItem . I-Gridzy isetha iklasi ngokuzenzakalelako kibo boke abantwana abaqondileko be-elementi yesitja esikhulu. Ngalokho, ungasebenzisa iklasi le ukwenza isitayela sezinto zegalari yakho.

Khumbula izinto eziqakathekileko

  1. Okuqukethwe yinto kufanele kuphendule ngokuzeleko. Cabanga bona ubukhulu bezinto buzokutjhuguluka nakanjani. Sebenzisa amanani wamaphesente esikhundleni samanani wamaphikseli. Bese uqala i-Gridzy layout option autoFontSize , ehlanganisa ubukhulu befonti kusayizi yebhokisi lento.
  2. Into ngayinye kufanele ibe nesilinganiso esihlathululwe kuhle. Isilinganiso sento angeze satjhuguluka begodu siyatlhogeka ukubala igridi. Njeke nangabe into ayinayo i-aspect ratio ehlathululwe kuhle, yihlathulule ngaphambilini ngesandla (isib. nge-css).

Kwezinye izehlakalo, kungaba lula ukutjhugulula okuqukethwe kwezinto ngaphambi kokuthi i-Gridzy ithome. Susa iklasi ye gridzy nofana ifayela le-javascript le-Gridzy okwesikhatjhana malungana nalokhu.

Yilokho! Lokho ngikho koke okutlhogako ukwakha isikhumba sakho. Inengi lezikhumba ezichazwe ngaphambilini azisebenzisi okunengi kunalokhu.

Kodwana kungaba nokunye nangabe uyathanda ...

Iinkhumba ezithuthukisiweko

I-Gridzy isebenzisa amaklasi we-CSS amanengi ukudlula gridzyItem kwaphela. Inengi lazo lizokusethwa ngokuzenzakalelayo begodu ungazisebenzisela ukuzitayela.

Amaklasi weenkhonteyina ezikulu

Ibizo leklasiIhlathululo
gridzy
ukusetha ngesandla
I-Gridzy ithola ngokuzenzakalelayo izinto ezineklasi le bese iyaziqalisa.
gridzyAnimatedIzokusethwa ngokuzenzakalelayo nangabe inketho animate true . Nangabe iklasi le isethwe ngesandla, inketho animate nayo izokuthola true ngokuzenzakalelayo (ngaphandle kwalokha isethwe ngokucacileko ku- false ).

Amaklasi wezinto

Ibizo leklasiIhlathululo
gridzyItemIzokusethwa msinyana lokha into nayithoma ikambiso yokuthoma. Angeze yasuswa.
gridzyItemInitializingIzokusethwa msinyana lokha into nayithoma ikambiso yokuthoma. Izokuthathelwa indawo yi gridzyItemReady msinyana ngemva kobana into sele ithomile. Akutjho bona iinthombe zilayishwe ngokuzeleko (qala gridzyItemLoading ), kodwana into ilungele ukubonakala.
gridzyItemReadyIzokuthatha indawo ye gridzyItemInitializing msinyana ngemva kobana into sele ithomile ngokupheleleko. Angeze yasuswa. Akutjho bona iinthombe zilayishwe ngokuzeleko (qala gridzyItemComplete ), kodwana into ilungele ukubonakala.
gridzyItemLoadingIzokusethwa msinyana lokha into nayithoma ikambiso yokuthoma. Izokuthathelwa indawo yi gridzyItemComplete msinyana ngemva kobana iinthombe eziqukethweko (ngokuvamileko yinye kwaphela) zilayishwe ngokuzeleko.
gridzyItemCompleteIzokuthatha indawo ye gridzyItemLoading msinyana ngemva kobana iinthombe eziqukethweko (ngokuvamileko yinye kwaphela) zilayishwe ngokuzeleko. Angeze yasuswa.
gridzyItemInitialToVisibleKuzokusethwa msinyana lokha into nayithoma ukuvela kokuthoma. Izokususwa msinyana lokha into nayibonakala ngokupheleleko.
gridzyItemVisibleKuzokusethwa msinyana lokha into nayibonakala ngokuzeleko. Izokususwa msinyana lokha into nayithoma ukunyamalala.
gridzyItemVisibleToHiddenKuzokusethwa msinyana lokha into nayithoma ukunyamalala. Izokususwa msinyana ngemva kobana into leyo ifihleke ngokupheleleko.
gridzyItemHiddenIzokusethwa msinyana ngemva kokuthi into ifihleke ngokupheleleko. Izokususwa msinyana lokha into nayithoma ukuvela.
gridzyItemHiddenToVisibleIzokusethwa msinyana lokha into nayithoma ukuvela (ngaphandle kokuvela kokuthoma – qala iklasi ye gridzyItemInitialToVisible ). Izokususwa msinyana lokha into nayibonakala ngokupheleleko.
gridzyItemVisibleToVisibleKuzokusethwa msinyana lokha nakutjhugulukileko okuthileko kugridi, kodwana into ngokwayo beyisolo ibonakala. Izokususwa msinyana ngemva kokuthi ukutjhuguluka kwe-animation kuphelile.

Ngokuzenzakalelayo isibonisi senqubo kanye nokunyakaza kwezithombe ezivelayo nezinyamalalayo zichazwe ngaphambilini yifayela elikhulu le-CSS le-Gridzy.

Ngamaklasi we-CSS akhulunywe ngehla ungazitayela iinkomba zakho zenqubo nama-animation. Hlola ifayela elikhulu le-CSS le-Gridzy, ukuzwisisa bona khuyini okufanele uyidlulise. Akusabi, yoke into itlolwe kuhle lapho.

Thuthukisa ukulayisha

Nawusebenzisa iinthombe ezinengi, kungaba mbono omuhle ukusiza i-Gridzy ukwakha igridi msinyana.

Vimbela ukugxuma kweenthombe

I-Gridzy itlhoga khulu isilinganiso seenthombe zoke ukubala igridi. Amaqiniso la aphumela ekugxumeni kwezinto nangabe ezinye iinthombe zikulungele kuthi ezinye azikalungeli. Lokha nakunemifanekiso eminengi, umphumela lo ungadina khulu.

Ukukhandela ukuziphatha lokhu, setha width height bazo zoke iingaba img . Kuqakathekile ukubeka amanani afaneleko wesithombe ngasinye, ngaphandle kwalokho iinthombe zingahlanekezelwa. Amanani afaneleko bubanzi nobude besithombe:

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

Ngemva kwalokho i-Gridzy ingabala igridi khonokho ngaphandle kokutlhoga ukwazi ubukhulu beenthombe.

Ukulayisha okuvilaphako

Ukulayisha iinthombe ezisendaweni ebonakalako kwaphela, landela amagadango la:

  1. Faka width height njengombana kuchaziwe ngehla (qiniseka bona usebenzisa amanani afaneleko)
  2. Faka zoke iimpawu src nge data-gridzylazysrc njengombana kutjengiswe ngenzasi (nangabe uneempawu srcset , zibuyisele nge 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>

Ngemva kwamagadango la iinthombe zizokulayisha msinyana nasele ziseduze nofana ngaphakathi kwendawo yokubuka.

Isitjengiso seNqubo

Isitjengiso senqubo sisithonjana esincani esiphilako esivela ngesikhathi isithombe silayishwa. Nawusebenzisa amagama abhalwe phasi neenkhumba , isitjengiso senqubo sizokutjengiswa ngokuzenzakalelako. Ngaphandle kwalokho udinga amatjhuguluko:

  1. Faka into ngayinye ye img ibe yinto ye div
    (nofana kiyo nanyana ngiyiphi enye into – qala i-HTML ye-semantic ukuthola okunengi)
  2. Faka iklasi gridzyImage ku-elementi ngayinye 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>

Ngemva kwalokho kufanele ubone iinkomba zenqubo nangabe iinthombe zithatha isikhathi ukulayisha.

Iinhlungi

Iinhlungi ku-Gridzy zilula kodwana zinamandla. Nanoma ngiliphi ihlobo lokuhlunga olitlhogako, kungenzeka bona lingakghonakala. Okutlhogako, i-CSS encani kanye nama-elementi wefomu le-HTML elimbalwa ...

Nasi isibonelo esisebenzako:

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

Asiyakheni ngesinyathelo ngesinyathelo

1. Kokuthoma sitlhoga isakhiwo se-HTML esijayelekileko se-Gridzy bese sibeka amagama wamaklasi wazo zoke izinto zegalari ukwenzela bona sikwazi ukuzihlunga ngemva kwalokho

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

Kulesi sibonelo sisebenzisa iklasi elilodwa kwaphela nge-elementi ngayinye. Kodwana ungasetha amaklasi amanengi wento yinye, nangabe into leyo kufanele itholakale ngeenhlungi ezinengi.

2. Bese singezelela amanye amabhathini lapho singatjhugulula khona amasefo bese

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

Esikhundleni samabhathini, ungasebenzisa ezinye izinto zefomu ezifana namabhokisi wokuhlola, amabhathini womrhatjho, amasimu wokukhetha njalo njalo.

Njengombana ubona, amanani wamabhathini abakhethi be-CSS abajayelekileko. Nasele siqedile, ukuchofoza inkinobho enjalo kuzokutjengisa iinthombe ezifana nesikhethi se-CSS. Ngokwethekhnikhi ibeka inketho filter kuleli nani.

Ungasebenzisa neenkhethi eziyinkimbinkimbi khulu. Ukwenza isibonelo :not(.animals) nazo zingasebenza, kanye .animals.people kanye .animals, .people .

3. Kokugcina, sifaka amabhathini esitjeni div bese siwabophelela kugalari ye-Gridzy, ngokusetha inketho 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>

Njengombana ubona, sisebenzisa isikhethi se-CSS sokukhetha i filterControls . Isitja div esine- id yenza kwaphela ukwenza bona kube lula ukukhetha amabhathini ngesikhethi se-CSS.

Yilokho!

Nawukhetha isisombululo se-JavaScript, qala i -API .

I-API

Nanyana i-Gridzy ine-API yayo, izinto ezinengi zingenziwa ngaphandle kwayo, ngokusebenzisa i-DOM. I-Gridzy izoyibona bese ilungisa igridi. Kodwana kune-API enamandla khulu ...

Ukusebenzisa i-DOM

Kiwo woke amatjhuguluko we-Document Object Model (DOM) sitlhoga kokuthoma into yesitja:

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

Faka iinthombe

Kuqakathekile ukwakha ngokuzeleko nokuzalisa into etja yomntwana ngaphambi kobana uyifake esitjeni. Ngaphandle kwalokho i-Gridzy angeze yakwazi ukuthola ubukhulu obufaneleko.

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

Susa iinthombe

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

Tjhugulula iinkhetho

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

Okunengi ngokusebenzisa i-DOM ungakuthola kumadokhumenti wewebhu we-MDN . Kunesingeniso se-DOM esitholakalako.

I-API yomnikazi

Ukusebenzisa i-API, sithoma ngokutlhoga isibonelo se-Gridzy, esibophelelwe ku-elementi yesitja se-Gridzy:

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

Thola ikhetho

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

Thola zoke iinkhetho

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

Setha iinkhetho

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

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

Sebenzisa isefo

Ukusebenzisa isihlungi kusetha filter sokukhetha esingaba yinoma ngisiphi isikhethi se-CSS esivumelekileko:

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

Faka imisebenzi yokubiza emuva

KUKHULULEKILEKO kusukela kuhlobo lwe-2.4.0
Sebenzisa imicimbi yesimanjemanje neguquguqukako esikhundleni salokho. Qala isigaba esilandelako malungana nemininingwana.

I-Gridzy.js 2 isekela ezinye iinkhetho zemisebenzi yokubiza emuva. Zingasethwa nge-API yomnikazi kwaphela, kodwana njengezinye iinkhetho:

// 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.
  }
});
Ihlathululo
onBeforeOptionsChangedUmsebenzi wokubiza emuva obizwa ngqo ngaphambi kokusetha iinkhetho.
onOptionsChangedUmsebenzi wokubiza emuva obizwa ngqo ngemva kokusetha iinkhetho.
onBeforeRenderUmsebenzi wokubiza emuva obizwa ngqo ngaphambi kokunikela.
onRenderUmsebenzi wokubiza emuva obizwa ngqo ngemva kokuveza.

Sebenzisa iminyanya

kusukela ngenguqulo 2.4.0

Ungasebenzisa izehlakalo ze-Gridzy njengezehlakalo ze-JavaScript ezijayelekileko:

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

Ezinye izehlakalo zidutshulwa ku-elementi yesitja se-Gridzy kuthi ezinye izehlakalo zidutshulwe ku-elementi yento ngayinye ngaphakathi kwe-elementi yesitja.

Izenzakalo ezidutshulwe ku-elementi yesitja se-Gridzy:

Ihlathululo
gridzyBeforeInitIvutha ngaphambi kokuthonywa kwegalari.
gridzyInitIvutha ngemva kokuthoma kwegalari.
gridzyBeforeOptionsChangedIvutha ngaphambi kokusetha iinkhetho.
gridzyOptionsChangedIvutha ngemva kokuhlela iinkhetho.
gridzyBeforeRenderIvutha ngaphambi kokuveza.
gridzyRenderImililo ngemva kokuveza.
Nangabe uphuthelwe yiminye iminyanya lapha, sibawa uthumela isibawo sokusekela .

event.target unikela nge-elementi yesitja se-Gridzy.
event.detail.instance unikela ngesibonelo se-Gridzy.

Izenzakalo ezithunyelwe eentweni:

Ihlathululo
gridzyItemBeforeInitIvutha ngaphambi kokuthi into ithome.
gridzyItemInitIvutha ngemva kokuthoma kwento.
gridzyItemLoadingIvutha lokha into nayithoma ukulayisha.
gridzyItemReadyIvutha lokha into nayilungele ukubalwa kwegridi. Njeke izinga lobujamo liyaziwa, kodwana isithombe kungenzeka sisalayisha.
gridzyItemCompleteIvutha lokha isithombe sento silayishwe ngokuzeleko.
Nangabe uphuthelwe yiminye iminyanya lapha, sibawa uthumela isibawo sokusekela .

event.target inikela ngento ehlukileko.
event.detail.instance unikela ngesibonelo se-Gridzy.

I-API – Iphasi loke

Kuneminye imisebenzi engazimeleko eenkhathini ze-Gridzy. Njeke asitlhogi ukuthola isibonelo ngaphambilini.

Thola ikhetho elikhethiweko

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

Thola zoke iinkhetho ezijayelekileko

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

Setha iinkhetho ezijayelekileko

Lokhu akubeki iinkhetho zazo zoke iinthombe ze-Gridzy esele ziqalisiwe, kodwana kuhlathulula isisekelo seenthombe ezitjha. Kodwana, nangabe ikhetho lesibonelo esikhona lingasethwa kabutjha ngenani null , lingasebenzisa inani elitjha elikhethiweko.

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

Ungasebenzisa lokhu ukusetha iinkhetho ephasini loke, nangabe uyibiza ngaphambi kokuthi i-DOM ilungele. Njeke angeze usatlhoga ukusetha iinkhetho njengeemfanelo.

Ukuzenzakalela

Inqobo nje nangabe woke ama-automatism we-Gridzy.js 2 asebenza, asikho isidingo seendlela ezingezansi. Kodwana ama-automatism angacinywa ukusebenzisa i-Gridzy ngendlela ejwayelekileko:

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

Ezinye zeenkhetho lezi angeze zasethwa ngeempawu data-gridzy- nofana nge setOptions() , ngebanga lezizathu ezizwakalako:

Inani elijwayelekilekoIhlathululo
autoInitOnDomReadytrueIthola izinto ezine gridzy yeklasi ekulayishweni kwekhasi bese iyaziqalisa.

Ingabekwa nge Gridzy.setDefaultOptions()
autoInitOnDomMutation
I-MutationObserver
trueIthola izinto ezitjha nge gridzy yeklasi msinyana nasele zivela ku-DOM bese uyaziqalisa. (isib. ngokusebenzisa ukutjhuguluka kwamakhasi)

Ingabekwa nge Gridzy.setDefaultOptions()
autoSyncChildListMutation
I-MutationObserver
trueIthola bona izinto ezincani (iinthombe) zingezelelwe namkha zisuswe, bese ivuselela igridi ngokuzenzakalelako.

Ingabekwa nge data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
useOptionAttributestrueIhlathulula bona iimpawu data-gridzy- zisetjenziswa ngokujayelekileko nofana awa. Nangabe lokhu false iinkhetho zingasethwa nge-API yomnikazi kwaphela.

Ingabekwa nge new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoSyncAttributesMutation
I-MutationObserver
trueIthola amatjhuguluko we data-gridzy- , bese ibuyekeza igridi ngokuzenzakalelako. Godu ithola bona iklasi gridzyAnimated ingezelelwe namkha isusiwe begodu nangabe amatjhuguluko style enzeka. Nangabe useOptionAttributes false , ithola amatjhuguluko style kwaphela.

Ingabekwa nge data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoSyncChildClassMutation
I-MutationObserver
trueIthola amatjhuguluko weemfanelo class zazo zoke iingaba zomntwana (iinthombe). Kuyafaneleka malungana namasefo.

Ingabekwa nge data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoSyncImageMutation
I-MutationObserver

kusukela kuhlobo 2.5.0
trueIthola amatjhuguluko weemfanelo src zazo zoke iinthombe. Ifanele lokha nayisetjenziswa ne-React nofana amalayibhrari afanako.

Ingabekwa nge data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoRenderOnResize
Tjhugulula ubukhulu be-Observer

kusukela ngenguqulo 2.6.0
trueIthola amatjhuguluko wobubanzi bezinto. Okufaneleko malungana nokuklanywa okuphendulako. (Ngaphambi kwenguqulo 2.6.0 kwasetjenziswa umlaleli womcimbi wokutjhugulula ubukhulu bewindi)

Ingabekwa nge data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()

Qalisa ngesandla

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

Bhidliza isibonelo

Ngokungakafaneli, okuphambene nokuqalisa i-Gridzy.

gridzyInstance.destroy();
gridzyInstance = null;

Vumelanisa irhelo labantwana ngesandla

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

Vumelanisa into yomntwana oyedwa ngesandla

Ngokuvamileko akutlhogeki, ngaphandle kwezehlakalo ezingakavami.

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

Vumelanisa iimfanelo ngesandla

Qaphela bona inketho useOptionAttributes kufanele ibe true kilokhu.

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

Ukugandelela

Ngokuvamileko akutlhogeki, ngitjho nanyana woke ama-automatism avaliwe

gridzyInstance.render();