Bersion 2.x


Pangrugian nga Usar

I-upload dagiti Gridzy files iti server-mo ken inayon dagitoy iti website-mo (kadawyan nga adda iti head section):

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

Inayon ti kodigo ti HTML (aniaman iti benneg ti bagi):

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

Dayta dayta! Dayta ti naan-anay a panagandar a pagarigan. Awan ti kasapulan nga ekstra nga initialization.

Konfigurasion ti

Ti kalalakaan a wagas a mangikonfigura ti Gridzy ket, ti panangusar laeng kadagiti kababalin ti HTML. Kasapulan laeng nga i-prefix dagiti nagan ti pagpilian iti data-gridzy- . Isu a, tapno mangikeddeng ti pagpilian spaceBetween , inayon laeng ti attribute 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>

Kangrunaan a Pagpilian

Default nga PategPanangiladawan
animatetrueIkeddeng no dagiti animasion ket rumbeng a mausar no agbaliw ti grid (kas pagarigan, no agbaliw ti kadakkel ti tawa ti browser wenno no mangiset ti maysa a pagsala).
layoutjustifiedDepinaren ti nausar a layout. Ti Gridzy.js 2 ket mangsuporta kadagiti dua a nagduduma a layout justified ken waterfall . Tunggal maysa kadagitoy ket addaan kadagiti bukodna a kanayonan a parametro ti pagpilian, a mabalinmo a masarakan iti baba daytoy a lamisaan.
filter*Ikeddengna no ania dagiti ladawan a rumbeng a maipakita. Ania man a CSS-selector ket mabalin nga usaren a kas pateg ditoy. Gagangay nga automatiko a maikeddeng babaen ti filterControls (kitaen ti sumaganad a pagpilian).
Kitaen ti Filters
filterControlsIkeddengna no ania dagiti elemento ti porma a mabalin nga usaren a mangsala kadagiti ladawan. Ania man a CSS selector, a mangpili kadagiti elemento ti porma ti HTML, ket mabalin nga usaren a kas pateg ditoy.
Kitaen ti Filters
autoConsiderScrollBarstrueTapno maipadto ti magun-odan a kalawa no agparang wenno agpukaw dagiti scroll bar. Kanayon a mairekomendar a baybay-an dayta iti true malaksid no daytoy nga automatismo ket mangpataud kadagiti parikut.

Justified Dagiti Pagpilian ti Layout

Default nga PategPanangiladawan
autoFontSizefalseAutomatiko nga i-update ti tagikua ti kadakkel ti letra ti tunggal kahon a naibatay iti orihinal a kadakkel ti kahon. Babaen ti default ti tagikua ti kadakkel ti letra ket saan a naikeddeng a nalawag.
desiredHeight190Depinaren ti tarigagayan a kangato dagiti hilera ti elemento. Ti aktual a kangato ket makuenta depende iti magun-od a kalawa ken dagiti elemento iti linia.
hideOnMissingImagetrueIlemmengna dagiti kahon a naglaon kadagiti ladawan a saan a maikarga.
spaceBetween4Depinaren ti kaadayo ti nagbaetan dagiti elemento kadagiti pixel.
lastRowAlign
manipud idi bersion 2.3.0
justifiedDepinaren ti kababalin ti maudi a linia. Dagiti maipalubos a pateg ket ti left , center , right ken justified .
singleRowAlign
manipud idi bersion 2.3.0
justifiedDepinaren ti kababalin no adda laeng ti maymaysa a linia. Dagiti maipalubos a pateg ket ti left , center , right ken justified .
fillLastRow
manipud idi bersion 2.1.0
trueNAikkat manipud idi bersion 2.4.0 (NALABIT manipud iti bersion 2.3.0 )
Urnosen dagiti ladawan tapno kanayon a naan-anay a mapno ti maudi a linia. No planom nga i-append dagiti ladawan a dinamiko, mabalin a nasayaat nga ideya nga i-deactivate daytoy.
Awan ti epektona kadagiti agmaymaysa a linia (kitaen ti fillSingleRow ).
fillSingleRow
manipud idi bersion 2.1.0
trueNAikkat manipud idi bersion 2.4.0 (NALABIT manipud iti bersion 2.3.0 )
No maymaysa laeng ti linia, urnosenna dagiti ladawan tapno kanayon a naan-anay a mapno ti hilera. No mabalin a mapasamak nga addaanka laeng iti maysa wenno dua a ladawan iti galeria, mabalin a nasayaat nga ideya nga i-deactivate daytoy.

Waterfall Dagiti Pagpilian ti Layout

Default nga PategPanangiladawan
autoFontSizefalseAutomatiko nga i-update ti tagikua ti kadakkel ti letra ti tunggal kahon a naibatay iti orihinal a kadakkel ti kahon. Babaen ti default ti tagikua ti kadakkel ti letra ket saan a naikeddeng a nalawag.
desiredWidth250Depinaren ti tarigagayan a kalawa dagiti adigi. Ti aktual a kalawa ket makuenta depende iti magun-od a kalawa ken ti bilang dagiti adigi.
hideOnMissingImagetrueIlemmengna dagiti kahon a naglaon kadagiti ladawan a saan a maikarga.
horizontalOrderfalseDepinarenna a dagiti elemento ket naikabilda a nainget a maysa nga elemento iti tunggal maysa nga elemento manipud iti kannigid aginggana iti kannawan, kalpasanna mangrugi manen iti kaaduan a kannigid a kolum nga agwaywayas no ania nga adigi ti ad-adu a lugar. Babaen ti default dagiti elemento ket kanayonto a maikabil iti kolum nga addaan iti kabassitan a kangato.
spaceBetween4Depinaren ti kaadayo ti nagbaetan dagiti elemento kadagiti pixel.
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.

Ad-adu pay nga Advanced Options

Para kadagiti ad-adu nga adelantado a pagpilian, kitaen ti API .

Semantiko nga HTML

Ti kasimplean nga estruktura ti HTML ti Gridzy ket daytoy:

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

Nupay kasta, ti Gridzy ket nalaka unay a maibagay ken mabalinmo nga usaren ti gangani nga ania man a sabali nga estruktura ti HTML. Adda sumagmamano laeng a punto a masapul nga usigen:

  • Tunggal anak ti elemento ti paglaon ket mangibagi ti maysa a banag iti grid.
  • Agpada a ti elemento ti paglaon ken dagiti annakna ket mabalin nga ania man a kita ti tag, a kas ti ul ken li (ibilang laeng ti panangi-reset kadagiti default ti browser).
  • No ti maysa nga elemento img ket saan a direkta nga ubing a mismo, kasapulanna ti klase gridzyImage .

Isu a daytoy met ti agtartrabaho nga estruktura ti 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>

Nangruna no kayatmo ti mangnayon kadagiti kapsion, kasapulam ti narang-ay nga estruktura ti HTML. Tapno maammuan ti ad-adu pay maipapan iti dayta, kitaem ti Captions & Skins .

Kapsion & Kudil

No kayatmo ti mangnayon kadagiti kapsion iti galeriam, kasapulam nga ikeddeng ti langa. Gapuna, magun-odan ti dadduma a nasakbay a naikeddeng a kudil. Tunggal kudil a buklen ti CSS file. Masapul nga inayonmo daytoy a papeles malaksid kadagiti kangrunaan a papeles ti Gridzy (kadawyan nga adda iti benneg ti ulo):

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

Maysa pay kasapulam ti narang-ay nga estruktura ti 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>

No pampanunotem ti maipapan iti estruktura ti HTML, kitaem ti Semantiko nga HTML .

Para iti kapsion mabalinmo nga usaren ti ania man a kita ti etiketa, siguraduem laeng nga addaan daytoy iti klase gridzyCaption . Ti elemento img ket kasapulanna ti klase gridzyImage .

Ti pagarigan iti ngato ket mangipakita kenka ti kudil gridzySkinClassic . Tapno mausar ti sabali, sukatan laeng ti nagan ti kudil iti maysa kadagitoy:

Nairaman dagiti Kudil

Dagiti Mabalin a Klase
gridzyKudilBlank nga
nasayaat a pangrugian ti panangparnuay iti bukod a kudil
live nga preview
gridzySkinBlank
gridzySkinClassic
live nga preview
gridzySkinClassic
gridzySkinClassicLight(NALABIT manipud iti bersion 2.6.0)
gridzySkinFullOverlay
live nga preview
gridzySkinFullOverlay
gridzySkinFullOverlayLight(NALABIT manipud iti bersion 2.6.0)
gridzySkinLift
live nga preview
gridzySkinLift
gridzySkinLiftLight(NALABIT manipud iti bersion 2.6.0)
gridzySkinMagnifier
saan a nairaman ti panagandar ti zoom
live nga preview
gridzySkinMagnifier
gridzySkinMagnifierLight(NALABIT manipud iti bersion 2.6.0)

Amin dagiti kudil iti ngato ket kasapulan laeng ti CSS a papeles, ngem adda dagiti kanayonan a kudil a kasapulan pay ti JavaScript a papeles:

<link rel="stylesheet" href="gridzy/skins/gridzySkinBlur/style.min.css" />
<script src="gridzy/skins/gridzySkinBlur/script.min.js"></script>
Dagiti Mabalin a Klase
gridzySkinBlur
saan nga agtrabaho iti IE
live nga preview
gridzySkinBlur
gridzySkinBlurLight(NALABIT manipud iti bersion 2.6.0)
gridzySkinCard
live nga preview
gridzySkinCard
gridzySkinCardLight(NALABIT manipud iti bersion 2.6.0)

Dagiti Pagpilian iti Kudil

Manipud idi bersion 2.6.0 adda dagiti Pagpilian a mangikonfigura kadagiti naibangon a kudil. Depende iti espesipiko a kudil mabalinmo nga i-set ti kolor ti likudan, kolor ti teksto ken anniniwan ti teksto. Masapul laeng nga usarem dagiti kostumbre a tagikua ti CSS kas makitam ditoy:

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

Kitaen dagiti nasuportaran a variable ken dagiti default a pateg para iti tunggal maysa a kudil ditoy:

gridzySkinClassic
Variable ngaDefault nga PategImpormasion
--backgroundrgba(0, 0, 0, .7)palubosanna ti ania man a pateg ti likudan ti CSS
--colorrgb(255, 255, 255)palubosanna ti ania man a pateg ti kolor ti CSS
--text-shadownonepalubosanna ti ania man a pateg ti teksto-anniniwan ti CSS
gridzySkinFullOverlay
Variable ngaDefault nga PategImpormasion
--backgroundrgba(0, 0, 0, .7)palubosanna ti ania man a pateg ti likudan ti CSS
--colorrgb(255, 255, 255)palubosanna ti ania man a pateg ti kolor ti CSS
--text-shadownonepalubosanna ti ania man a pateg ti teksto-anniniwan ti CSS
gridzySkinLift
Variable ngaDefault nga PategImpormasion
--backgroundrgba(0, 0, 0, .7)palubosanna ti ania man a pateg ti likudan ti CSS
--colorrgb(255, 255, 255)palubosanna ti ania man a pateg ti kolor ti CSS
--text-shadow0 0 10px rgb(0, 0, 0), 0 0 20px rgb(0, 0, 0), 0 0 30px rgb(0, 0, 0)palubosanna ti ania man a pateg ti teksto-anniniwan ti CSS
gridzySkinMagnifier
Variable ngaDefault nga PategImpormasion
--backgroundrgba(0, 0, 0, .7)palubosanna ti ania man a pateg ti likudan ti CSS
--colorrgb(255, 255, 255)palubosanna ti ania man a pateg ti kolor ti CSS

Daytoy a kudil ket saan a mangsuporta ti --text-shadow

gridzySkinBlur
Variable ngaDefault nga PategImpormasion
--backgroundrgba(0, 0, 0, .7)palubosanna ti ania man a pateg ti likudan ti CSS
--colorrgb(255, 255, 255)palubosanna ti ania man a pateg ti kolor ti CSS
--text-shadow0 0 10px rgb(0, 0, 0)palubosanna ti ania man a pateg ti teksto-anniniwan ti CSS
gridzySkinCard
Variable ngaDefault nga PategImpormasion
--backgroundrgba(0, 0, 0, 1)palubosanna ti ania man a pateg ti likudan ti CSS
--colorrgb(255, 255, 255)palubosanna ti ania man a pateg ti kolor ti CSS
--text-shadownonepalubosanna ti ania man a pateg ti teksto-anniniwan ti CSS

Amin dagiti nasakbay a naikeddeng a kudil ket mangsuporta laeng kadagiti simple a kapsion ti teksto. Mabalinmo ti mangparnuay kadagiti bukodmo ken mas komplikado a kudil. Pangngaasiyo ta kitaenyo ti Estilo Gridzy .

Estilo nga Gridzy

No awan ti nasakbay a naikeddeng a kudil a maibagay kadagiti kasapulam, mabalinmo nga estiloen ti bukodmo.

Ti kalalakaan a pamay-an ket umuna a kopiaem ti addan a kudil ken ibagaymo dayta kadagiti bukodmo a kasapulam. Ti nasakbay a naikeddeng a kudil gridzySkinBlank ket kadawyan a mangipaay ti nasayaat a pundasion ken kasta met ti nasayaat a dokumentasion iti CSS a papeles:

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

Iti CSS a papeles ket masarakam dagiti klase a gridzySkinBlank , gridzyImage ken gridzyCaption . Saan a kasapulan ni Gridzy a mismo dagitoy a klase. Mausar laeng dagitoy para iti estilo ket ngarud mabalinmo nga ikkaten wenno baliwan ti nagan dagitoy no kayatmo.

Mainayon pay a masarakam ti klase ti CSS gridzyItem . Ti Gridzy ket automatiko nga ikeddeng daytoy a klase kadagiti amin a direkta nga annak ti kangrunaan nga elemento ti paglaon. Gapuna, mabalinmo nga usaren daytoy a klase tapno estiloen dagiti banag ti galeriam.

Ipanunot Dagiti Napateg a Bambanag

  1. Rumbeng a naan-anay a makasungbat dagiti linaon ti item. Panunotem a sigurado nga agbaliw ti kadakkel ti elemento. Usaren dagiti pateg ti porsiento imbes a dagiti pateg ti pixel. Ket kitaen ti pagpilian ti layout ti Gridzy autoFontSize , a mangisilpo ti kadakkel ti letra iti kadakkel ti kahon ti banag.
  2. Tunggal banag ket rumbeng nga addaan iti nasayaat ti pannakadepinar nga aspect ratio. Saan a pulos nga agbaliw ti aspect ratio ti item ken kasapulan tapno makalkula ti grid. Isu a no ti maysa a banag ket saan nga automatiko nga addaan iti nasayaat a naikeddeng nga aspeto a ratio, nasakbay a naikeddeng daytoy a manual (kas pagarigan babaen ti css).

Iti dadduma a kaso, mabalin a nalaklaka nga estilo ti linaon dagiti banag sakbay nga agrugi ti Gridzy. Ikkaten laeng ti klase gridzy wenno ti Gridzy javascript file a temporario para iti daytoy.

Dayta dayta! Dayta laeng ti kasapulam tapno makaaramidka iti bukodmo a kudil. Kaaduan kadagiti nasakbay a naikeddeng a kudil ket saan nga agus-usar iti ad-adu ngem daytoy.

Ngem mabalin nga adda pay no kayatmo ...

Narang-ay a Kudil

Ti Gridzy ket agus-usar kadagiti ad-adu a klase ti CSS ngem ti laeng gridzyItem . Kaaduan kadagitoy ket automatiko a ma-set ken mabalinmo nga usaren dagitoy para iti panag-styling met.

Dagiti Klase ti Kangrunaan a Container

Nagan ti KlasePanangiladawan
gridzy
nga i-set a manual
Automatiko a mangbirok ni Gridzy kadagiti elemento nga addaan iti daytoy a klase ken irugina dagitoy.
gridzyAnimatedAutomatiko a maikeddeng no ti pagpilian nga animate ket true . No daytoy a klase ket naikeddeng a manual, ti pagpilian nga animate ket automatiko a makagun-od true met (malaksid no daytoy ket nalawag a naikeddeng iti false ).

Dagiti Klase ti Item

Nagan ti KlasePanangiladawan
gridzyItemMaikeddeng apaman a mangrugi ti banag iti proseso ti panangrugi. Saanto a pulos a maikkat.
gridzyItemInitializingMaikeddeng apaman a mangrugi ti banag iti proseso ti panangrugi. Masukatanto babaen ti gridzyItemReady apaman a naan-anay a nairugi ti banag. Kayatna a sawen a saan a dagiti ladawan ket naan-anay a nakargaan (kitaen gridzyItemLoading ), ngem ti banag ket nakasaganan a makita.
gridzyItemReadySukatan ti gridzyItemInitializing apaman a naan-anay a nairugi ti banag. Saanto a pulos a maikkat. Kayatna a sawen a saan a dagiti ladawan ket naan-anay a nakargaan (kitaen gridzyItemComplete ), ngem ti banag ket nakasaganan a makita.
gridzyItemLoadingMaikeddeng apaman a mangrugi ti banag iti proseso ti panangrugi. Masukatanto babaen ti gridzyItemComplete apaman a naan-anay a maikarga dagiti linaon a ladawan (kadawyan a maysa laeng).
gridzyItemCompleteSukatanto gridzyItemLoading apaman a naan-anay a maikarga dagiti linaon a ladawan (kadawyan a maysa laeng). Saanto a pulos a maikkat.
gridzyItemInitialToVisibleMaikeddeng apaman a mangrugi nga agparang ti banag iti umuna a gundaway. Maikkatto apaman a naan-anay a makita ti banag.
gridzyItemVisibleMaikeddeng apaman a naan-anay a makita ti banag. Maikkatto apaman a mangrugin a mapukaw ti banag.
gridzyItemVisibleToHiddenMaitudingto apaman a mangrugin a mapukaw ti banag. Maikkatto apaman a naan-anay a nailemmeng ti banag.
gridzyItemHiddenMaikeddeng apaman a naan-anay a nailemmeng ti banag. Maikkatto apaman a mangrugin nga agparang ti banag.
gridzyItemHiddenToVisibleMaikeddengto apaman a mangrugi nga agparang ti banag (malaksid ti panagparang iti umuna a gundaway – kitaen ti klase gridzyItemInitialToVisible ). Maikkatto apaman a naan-anay a makita ti banag.
gridzyItemVisibleToVisibleMaikeddengto apaman a nagbaliw ti maysa a banag iti grid, ngem ti banag a mismo ket idi ken agtalinaed a makita. Maikkatto apaman a malpas ti change animation.

Babaen ti default ti mangipakita ti proseso ken dagiti animasion para kadagiti agparang ken agpukaw a ladawan ket nasakbay a naikeddeng babaen ti Gridzy a kangrunaan a CSS a papeles.

Babaen kadagitoy a nadakamat iti ngato a klase ti CSS mabalinmo nga estiloen ti bukodmo a mangipakita ti proseso ken dagiti animasion. Maituredmo a kitaen ti Gridzy a kangrunaan a CSS a file, tapno maawatan no ania ti masapul nga i-override-mo. Awan ti buteng, nasayaat ti pannakadokumento ti amin sadiay.

Optimize ti Panagkarga

No adu ti usarem a ladawan, mabalin a nasayaat nga ideya a tulongan ni Gridzy a mangbangon iti grid a naparpartak.

Lapdan ti Panagluksaw Dagiti Ladawan

Talaga a kasapulan ni Gridzy ti aspect ratio ti amin a ladawan tapno makalkula ti grid. Dagitoy a kinapudno ket agresulta kadagiti panagluksaw nga elemento no dagiti dadduma a ladawan ket nakasagana ken dagiti dadduma ket saan. No ad-adu dagiti ladawan, ad-adda a makarimon daytoy nga epekto.

Tapno malapdan daytoy a kababalin, ikeddeng laeng dagiti kababalin width ken height para kadagiti amin nga elemento img . Napateg nga ikeddeng dagiti umno a pateg para iti tunggal indibidual a ladawan, ta no saan ket maballikug dagiti ladawan. Dagiti umno a pateg ket ti orihinal a kalawa ken kangato ti bukod a ladawan:

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

Kalpasanna ni Gridzy ket mabalinna a kalkularen a dagus ti grid a saan a kasapulan nga ammuen dagiti aktual a kadakkel dagiti ladawan.

Natamad nga Pagkarga

Tapno maikarga laeng dagiti ladawan nga adda iti makita a viewport, suroten laeng dagitoy nga addang:

  1. Ikabil dagiti kababalin width ken height a kas nailadawan iti ngato (siguraduen nga usaren dagiti umno a pateg) .
  2. Sukatan amin dagiti kababalin src iti data-gridzylazysrc a kas naipakita iti baba (no addaanka met kadagiti kababalin srcset , sukatam dagitoy iti 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>

Kalpasan dagitoy nga addang dagiti ladawan ket agkarga apaman nga asideg wenno iti uneg ti viewport.

Indikador ti Proseso

Ti process indicator ket isu ti bassit nga animated icon a maiparang bayat ti panagkarga ti ladawan. No agusarka kadagiti kapsion & kudil , automatiko a maipakita ti mangipakita ti proseso. Ta no saan kasapulam ti sumagmamano a panagbalbaliw:

  1. Ikabil ti tunggal img element iti div element
    (wenno iti ania man a sabali nga elemento – kitaen ti semantiko nga HTML para iti ad-adu pay)
  2. Inayon ti klase gridzyImage iti tunggal maysa nga elemento 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>

Kalpasan dayta ket rumbeng a makitam dagiti mangipakita ti proseso no dagiti ladawan ket mangala ti panawen tapno makarga.

Dagiti pagsala

Dagiti filter iti Gridzy ket medyo simple ngem nabileg. Uray ania a kita ti filter ti kasapulam, dakkel ti posibilidadna a matungpal dayta. Ti laeng kasapulam ket, bassit a CSS ken sumagmamano nga elemento ti porma ti HTML ...

Adtoy ti maysa a pagarigan ti panagandar:

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

Ibangontayo Dayta Addang-addang

1. Umuna kasapulan tayo ti gagangay nga HTML structure ti Gridzy ken mangiset ti class names para kadagiti amin nga gallery items tapno ma-filter tayo dagitoy kalpasanna

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

Iti daytoy a pagarigan usarentayo laeng ti maysa a klase para iti tunggal elemento. Ngem mabalinmo pay nga ikeddeng dagiti adu a klase para iti maymaysa nga elemento, no dayta nga elemento ket rumbeng a masarakan babaen dagiti adu a pagsala.

2. Kalpasanna, inayontayo ti sumagmamano a buton a babaen kadagitoy ket mabalintayo a baliwan dagiti pagsala kalpasanna

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

Imbes a dagiti buton, mabalinmo pay nga usaren dagiti dadduma nga elemento ti porma a kas dagiti kahon ti tsek, dagiti buton ti radio, dagiti pilien a tay-ak ken dadduma pay.

Kas makitam, dagiti pateg dagiti buton ket kadawyan a CSS selectors. Apaman a malpasmi, ti panangi-click iti kasta a buton ket mangipakita kadagiti ladawan a maitunos iti dayta a CSS selector. Iti teknikal ket basta mangikeddeng ti pagpilian filter iti daytoy a pateg.

Mabalinmo met nga usaren dagiti mas komplikado nga amang a selector. Kas pagarigan :not(.animals) ket agtrabaho met, kasta met ti .animals.people ken .animals, .people .

3. Maudi, ikapsulatayo dagiti buton iti div container ken i-bindtayo dagitoy iti Gridzy gallery, babaen ti panangisaad ti filterControls option:

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

Kas makitam, agus-usarkami met iti CSS selector para iti filterControls option. Ti div container nga addaan iti id attribute ket agserbi laeng a mangaramid kadagiti buton a nalaklaka a pilien babaen dayta a CSS selector.

Dayta dayta!

No kaykayatmo ti solusion ti JavaScript, kitaem ti API .

API

Urayno ti Gridzy ket addaan iti bukodna nga API, kaaduan a banag ket mabalin nga aramiden nga awan daytoy, babaen laeng ti panangmanipula ti DOM. Madlaw ni Gridzy dayta ket i-adjust ti grid. Ngem adda met nabileg unay nga API ...

Panangmanipula iti DOM

Para kadagiti amin a manipulasion ti Document Object Model (DOM) nga umuna a kasapulantayo ti elemento ti paglaon:

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

Add Images

Napateg a naan-anay a mangbangon ken punnuen ti baro nga elemento ti ubing sakbay nga inayonmo daytoy iti elemento ti pagkargaan. Ta no saan, saan a madlaw ni Gridzy dagiti umno a dimension.

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

Ikkaten dagiti Ladawan

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

Baliwan dagiti Pagpilian

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

Ad-adu pay maipapan ti panagmanipula ti DOM ket mabalinmo a masarakan idiay MDN web docs . Adda met ti Introduction to the DOM a magun-od.

Ti API ti kukua

Tapno mausar ti API, kasapulantayo nga umuna ti Gridzy nga instansia, a daytoy ket naisilpo iti Gridzy container element:

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

Alaen ti Opsion

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

Alaen ti Amin a Pagpilian

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

Itakderan dagiti Pagpilian

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

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

I-apply ti Filter

Ti panangipakat ti maysa a pagsala ket panangisaad laeng ti filter ti pagpilian a mabalin nga ania man a balido a mangpili ti 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'
});

Inayon dagiti Function ti Callback

NA-DEPRECATED manipud idi bersion 2.4.0
Usaren ketdi dagiti moderno ken ad-adda a nalaka a maibagay a Pasamak . Kitaen ti sumaganad a benneg para kadagiti detalye.

Ti Gridzy.js 2 ket mangsuporta kadagiti sumagmamano a pagpilian para kadagiti panagandar ti panagayab manen. Mabalin laeng a maikeddeng dagitoy babaen ti tagikua nga API, ngem kas met laeng dagiti dadduma a pagpilian:

// 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.
  }
});
Panangiladawan
onBeforeOptionsChangedCallback function a direkta a maawagan sakbay ti panangisaad kadagiti pagpilian.
onOptionsChangedCallback function a direkta a maawagan kalpasan ti panangisaad kadagiti pagpilian.
onBeforeRenderCallback function a direkta a maawagan sakbay ti panagiparang.
onRenderCallback function a direkta a maawagan kalpasan ti panagiparang.

Usaren dagiti Pasamak

manipud idi bersion 2.4.0

Mabalinmo nga usaren dagiti pasamak ti Gridzy nga eksakto a kas dagiti gagangay a pasamak ti 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.
});

Sumagmamano a pasamak ket maipaputok iti elemento ti paglaon ti Gridzy ken dagiti dadduma a pasamak ket naputolan kadagiti indibidual nga elemento ti banag iti uneg ti elemento ti paglaon.

Dagiti pasamak a napaltogan iti elemento ti paglaon ti Gridzy:

Panangiladawan
gridzyBeforeInitFires sakbay ti panangrugi ti galeria.
gridzyInitFires kalpasan ti panangrugi ti galeria.
gridzyBeforeOptionsChangedFires sakbay nga i-set dagiti pagpilian.
gridzyOptionsChangedAgputok kalpasan ti panangisaad kadagiti pagpilian.
gridzyBeforeRenderFires sakbay nga i-render.
gridzyRenderFires kalpasan ti panag-render.
No malipatanmo ti aniaman a pasamak ditoy, pangngaasim ta mangipatulodka iti kiddaw a suporta .

event.target ket mangipaay ti elemento ti paglaon ti Gridzy.
event.detail.instance ket mangipaay ti instansia ti Gridzy.

Dagiti pasamak a napaltogan kadagiti elemento ti item:

Panangiladawan
gridzyItemBeforeInitAgputok sakbay ti panangrugi ti item.
gridzyItemInitAgputok kalpasan ti panangrugi ti item.
gridzyItemLoadingAgputok no mangrugin nga agkarga ti item.
gridzyItemReadyAgputok no nakasaganan ti item para iti grid calculation. Isu nga ammo ti aspect ratio, ngem mabalin nga agkarkarga pay laeng ti ladawan.
gridzyItemCompleteAgputok no naan-anay a nakarga ti ladawan ti item.
No malipatanmo ti aniaman a pasamak ditoy, pangngaasim ta mangipatulodka iti kiddaw a suporta .

event.target ket mangipaay ti bukod nga elemento ti banag.
event.detail.instance ket mangipaay ti instansia ti Gridzy.

API – Sangalubongan

Adda dagiti sumagmamano a panagandar nga agwaywayas kadagiti instansia ti Gridzy. Isu a saantayo a kasapulan ti mangala iti instance sakbayna.

Alaen ti Default a Pagpilian

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

Alaen Amin a Default a Pagpilian

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

Itakderan dagiti Default a Pagpilian

Daytoy ket saan a mangikeddeng kadagiti pagpilian ti amin a naidasig a Gridzy nga instansia, ngem mangikeddeng ti batayan para kadagiti baro nga instansia. Nupay kasta, no ti maysa a pagpilian ti addan nga instansia ket maisubli babaen ti pateg a null , daytoy ket agus-usar ti baro a kasisigud a pateg.

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

Mabalinmo nga usaren daytoy tapno mangikeddeng kadagiti pagpilian iti sangalubongan, no awagan daytoy sakbay a nakasaganan ti DOM. Isu a saanen a kasapulan nga ikeddeng dagiti pagpilian kas attribute.

Dagiti automatismo

No la ketdi amin nga automatismo ti Gridzy.js 2 ket aktibo, saan a kasapulan dagiti pamay-an iti baba. Ngem dagiti automatismo ket mabalin nga iddepen tapno mausar ti Gridzy iti mas tradisional a wagas:

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

Sumagmamano kadagitoy a pagpilian ket saan a maikeddeng babaen data-gridzy- a kababalin wenno babaen ti setOptions() , gapu kadagiti lohikal a rason:

Default nga PategPanangiladawan
autoInitOnDomReadytrueMangduktal kadagiti elemento nga addaan iti klase gridzy iti panagkarga ti panid ken mangirugi kadagitoy.

Maikeddeng babaen ti Gridzy.setDefaultOptions()
autoInitOnDomMutation
Ti Panagpaliiw ti Mutasion
trueMangduktal kadagiti baro nga elemento nga addaan iti klase gridzy apaman nga agparangda iti DOM ken irugi dagitoy. (kas pagarigan iti panagusar kadagiti panagbalbaliw ti panid) .

Maikeddeng babaen ti Gridzy.setDefaultOptions()
autoSyncChildListMutation
Ti Panagpaliiw ti Mutasion
trueMangduktal no dagiti ubing nga elemento (ladawan) ket nainayon wenno naikkat, ken automatiko nga i-update ti grid.

Maikeddeng babaen ti data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
useOptionAttributestrueDepinarenna no dagiti data-gridzy- a kababalin ket sapasap a maus-usar wenno saan. No daytoy ket false dagiti pagpilian ket mabalin laeng a maikeddeng babaen ti tagikua nga API.

Maikeddeng babaen ti new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoSyncAttributesMutation
Ti Panagpaliiw ti Mutasion
trueMangduktal kadagiti panagbalbaliw dagiti data-gridzy- a kababalin, ken automatiko nga i-update ti grid. Mangduktal pay no ti klase ti gridzyAnimated ket nainayon wenno naikkat ken no dagiti panagbalbaliw ti kababalin style ket mapasamak. No ti useOptionAttributes ket false , daytoy ket mangduktal laeng kadagiti panagbalbaliw ti kababalin style .

Maikeddeng babaen ti data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoSyncChildClassMutation
Ti Panagpaliiw ti Mutasion
trueMangduktal kadagiti panagbalbaliw dagiti kababalin class ti amin nga ubing nga elemento (ladawan). Mainaig maipapan kadagiti pagsala.

Maikeddeng babaen ti data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoSyncImageMutation
Ti Panagpaliiw ti Mutasion

manipud idi bersion 2.5.0
trueMangduktal kadagiti panagbalbaliw ti src a kababalin ti amin a ladawan. Mainaig no mausar kadagiti React wenno dagiti kapada a biblioteka.

Maikeddeng babaen ti data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoRenderOnResize
Baliwan ti Kadakkel tiObserver

manipud idi bersion 2.6.0
trueDetektaren dagiti panagbalbaliw ti kalawa ti elemento. Mainaig maipapan iti responsive design. (Sakbay ti bersion 2.6.0 ti maysa a window resize event listener ket naus-usar)

Maikeddeng babaen ti data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions()

Manual nga Irugi

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

Dadaelen ti Instansia

Roughly said, kasungani ti panangirugi iti Gridzy.

gridzyInstance.destroy();
gridzyInstance = null;

Manual nga I-sync ti Listaan ti Ubing

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

Manual nga I-sync ti Single Child Element

Gagangay a saan a kasapulan, malaksid kadagiti manmano unay a kaso.

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

Manual nga I-sync dagiti Attribute

Panunoten a ti pagpilian useOptionAttributes ket masapul a true para iti daytoy.

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

Puersa a Panagparang

Gagangay a saan a kasapulan, uray no naiddep amin nga automatismo

gridzyInstance.render();