Хувилбар 2.x


Үндсэн хэрэглээ

Gridzy файлуудыг сервертээ байршуулж, вэбсайтдаа нэмнэ үү (ихэвчлэн толгой хэсэгт):

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

HTML кодыг нэмнэ үү (бие хэсгийн аль ч хэсэгт):

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

Ингээд л болоо! Энэ бол бүрэн ажиллагаатай жишээ юм. Нэмэлт эхлүүлэх шаардлагагүй.

Тохиргоо

Gridzy-г тохируулах хамгийн хялбар арга бол зүгээр л HTML шинж чанаруудыг ашиглах явдал юм. Та сонголтын нэрэнд зөвхөн data-gridzy- гэсэн угтвар тавих хэрэгтэй. Тиймээс spaceBetween сонголтыг тохируулахын тулд 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>

Үндсэн сонголтууд

Өгөгдмөл утгаТодорхойлолт
animatetrueСүлжээ өөрчлөгдөх үед (жишээ нь, хөтчийн цонхны хэмжээг өөрчлөх эсвэл шүүлтүүр тохируулах үед) хөдөлгөөнт дүрсийг ашиглах эсэхийг тодорхойлно.
layoutjustifiedАшигласан бүдүүвчийг тодорхойлно. Gridzy.js 2 нь justified болон waterfall хоёр өөр байршлыг дэмждэг. Тэд тус бүр өөрийн гэсэн нэмэлт сонголтын параметрүүдтэй бөгөөд та үүнийг хүснэгтийн доороос олж болно.
filter*Аль зургийг харуулах ёстойг тодорхойлно. Энд ямар ч CSS сонгогчийг утга болгон ашиглаж болно. Ихэвчлэн filterControls -ээр автоматаар тохируулдаг (дараагийн сонголтыг үзнэ үү).
Шүүлтүүрийг шалгана уу
filterControlsЗургийг шүүхэд ямар хэлбэрийн элементүүдийг ашиглаж болохыг тодорхойлно. HTML маягтын элементүүдийг сонгох ямар ч CSS сонгогчийг энд утга болгон ашиглаж болно.
Шүүлтүүрийг шалгана уу
autoConsiderScrollBarstrueГүйлгэх мөр гарч ирэх эсвэл алга болсон тохиолдолд боломжтой өргөнийг урьдчилан таамаглах. Энэ автоматизм нь асуудал үүсгэхгүй бол үүнийг үргэлж true хэвээр үлдээхийг зөвлөж байна.

Justified Байршлын сонголтууд

Өгөгдмөл утгаТодорхойлолт
autoFontSizefalseАнхны хайрцгийн хэмжээн дээр тулгуурлан хайрцаг бүрийн үсгийн хэмжээтэй шинж чанарыг автоматаар шинэчилдэг. Анхдагч байдлаар фонтын хэмжээтэй шинж чанарыг тодорхой тохируулаагүй болно.
desiredHeight190Элементийн эгнээний хүссэн өндрийг тодорхойлно. Бодит өндрийг боломжит өргөн болон эгнээний элементүүдээс хамаарч тооцоолно.
hideOnMissingImagetrueАчаалах боломжгүй зураг агуулсан нүдийг нууна.
spaceBetween4Элементүүдийн хоорондох зайг пикселээр тодорхойлно.
lastRowAlign
2.3.0 хувилбараас хойш
justifiedСүүлийн эгнээний зан төлөвийг тодорхойлдог. Зөвшөөрөгдсөн утгууд left , center , right болон justified .
singleRowAlign
2.3.0 хувилбараас хойш
justifiedЗөвхөн нэг мөр байгаа тохиолдолд зан төлөвийг тодорхойлно. Зөвшөөрөгдсөн утгууд left , center , right болон justified .
fillLastRow
2.1.0 хувилбараас хойш
true2.4.0 хувилбараас хойш УСТГАСАН ( 2.3.0 хувилбараас хойш ХУГАЦААГҮЙ)
Сүүлийн эгнээ үргэлж бүрэн дүүрэн байхаар зургуудыг байрлуулна. Хэрэв та динамикаар зураг нэмэхээр төлөвлөж байгаа бол үүнийг идэвхгүй болгох нь зүйтэй.
Нэг мөрөнд ямар ч нөлөө үзүүлэхгүй ( fillSingleRow үзнэ үү).
fillSingleRow
2.1.0 хувилбараас хойш
true2.4.0 хувилбараас хойш УСТГАСАН ( 2.3.0 хувилбараас хойш ХУГАЦААГҮЙ)
Хэрэв зөвхөн нэг эгнээ байгаа бол энэ нь эгнээ үргэлж бүрэн дүүрэн байхаар зургуудыг зохион байгуулдаг. Хэрэв танд галерейд ганц эсвэл хоёр зураг байгаа бол үүнийг идэвхгүй болгох нь зүйтэй.

Waterfall Байршлын сонголтууд

Өгөгдмөл утгаТодорхойлолт
autoFontSizefalseАнхны хайрцгийн хэмжээн дээр тулгуурлан хайрцаг бүрийн үсгийн хэмжээтэй шинж чанарыг автоматаар шинэчилдэг. Анхдагч байдлаар фонтын хэмжээтэй шинж чанарыг тодорхой тохируулаагүй болно.
desiredWidth250Хүссэн баганын өргөнийг тодорхойлно. Бодит өргөнийг боломжит өргөн болон баганын тооноос хамаарч тооцоолно.
hideOnMissingImagetrueАчаалах боломжгүй зураг агуулсан нүдийг нууна.
horizontalOrderfalseЭлементүүдийг зүүнээс баруун тийш багана тус бүрт нэг элемент байрлуулахыг тодорхойлж, дараа нь аль багана илүү байхаас үл хамааран хамгийн зүүн баганаас дахин эхэлнэ. Анхдагч байдлаар элементүүдийг үргэлж хамгийн бага өндөртэй баганад байрлуулна.
spaceBetween4Элементүүдийн хоорондох зайг пикселээр тодорхойлно.
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.

Илүү нарийвчилсан сонголтууд

Илүү дэвшилтэт сонголтуудыг API-г шалгана уу.

Семантик HTML

Gridzy-ийн хамгийн энгийн HTML бүтэц нь:

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

Гэсэн хэдий ч Gridzy нь маш уян хатан бөгөөд та бараг ямар ч HTML бүтцийг ашиглаж болно. Зөвхөн цөөн хэдэн зүйлийг анхаарч үзэх хэрэгтэй:

  • Контейнерийн элементийн хүүхэд бүр сүлжээн дэх нэг зүйлийг төлөөлдөг.
  • Контейнер элемент болон түүний хүүхдүүд хоёулаа ul , li гэх мэт ямар ч төрлийн шошго байж болно (хөтчийн өгөгдмөл тохиргоог дахин тохируулахад л хангалттай).
  • Хэрэв img элемент нь өөрөө шууд хүүхэд биш бол түүнд gridzyImage анги хэрэгтэй.

Тэгэхээр энэ нь бас ажиллаж байгаа 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>

Ялангуяа тайлбар нэмэхийг хүсвэл танд дэвшилтэт HTML бүтэц хэрэгтэй. Энэ талаар илүү ихийг мэдэхийг хүсвэл Caption & Skins- ийг харна уу.

Тайлбар ба арьс

Хэрэв та галерейдаа тайлбар нэмэхийг хүсвэл гадаад төрхийг нь тодорхойлох хэрэгтэй. Тиймээс урьдчилан тодорхойлсон зарим арьс байдаг. Арьс бүр нь CSS файлаас бүрддэг. Та Gridzy үндсэн файлуудаас гадна энэ файлыг нэмэх хэрэгтэй (ихэвчлэн толгой хэсэгт):

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

Цаашлаад танд дэвшилтэт 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>

Хэрэв та HTML бүтцийн талаар сонирхож байгаа бол Semantic HTML-г харна уу.

Тайлбарын хувьд та ямар ч төрлийн шошго ашиглаж болно, зүгээр л gridzyCaption ангитай эсэхийг шалгаарай. img элементэд gridzyImage анги хэрэгтэй.

Дээрх жишээ нь танд арьсыг харуулж байна gridzySkinClassic . Өөр нэрийг ашиглахын тулд арьсны нэрийг дараахын аль нэгээр солино уу.

Оруулсан арьс

Боломжтой ангиуд
gridzySkinBlank
өөрийн арьсыг бий болгох сайн эхлэлийн цэг
шууд урьдчилан үзэх
gridzySkinBlank
gridzySkinClassic
шууд урьдчилан үзэх
gridzySkinClassic
gridzySkinClassicLight(2.6.0 хувилбараас хойш ХУГАЦААГҮЙ)
gridzySkinFullOverlay
шууд урьдчилан үзэх
gridzySkinFullOverlay
gridzySkinFullOverlayLight(2.6.0 хувилбараас хойш ХУГАЦААГҮЙ)
gridzySkinLift
шууд урьдчилан үзэх
gridzySkinLift
gridzySkinLiftLight(2.6.0 хувилбараас хойш ХУГАЦААГҮЙ)
gridzySkinMagnifier
томруулах функцийг оруулаагүй болно
шууд урьдчилан үзэх
gridzySkinMagnifier
gridzySkinMagnifierLight(2.6.0 хувилбараас хойш ХУГАЦААГҮЙ)

Дээрх бүх арьсанд зөвхөн CSS файл хэрэгтэй, гэхдээ JavaScript файлыг шаарддаг нэмэлт арьсууд байдаг:

<link rel="stylesheet" href="gridzy/skins/gridzySkinBlur/style.min.css" />
<script src="gridzy/skins/gridzySkinBlur/script.min.js"></script>
Боломжтой ангиуд
gridzySkinBlur
IE дээр ажиллахгүй байна
шууд урьдчилан үзэх
gridzySkinBlur
gridzySkinBlurLight(2.6.0 хувилбараас хойш ХУГАЦААГҮЙ)
gridzySkinCard
шууд урьдчилан үзэх
gridzySkinCard
gridzySkinCardLight(2.6.0 хувилбараас хойш ХУГАЦААГҮЙ)

Арьсны сонголтууд

2.6.0 хувилбараас хойш суулгасан арьсыг тохируулах сонголтууд байдаг. Тодорхой арьсны төрлөөс хамааран та дэвсгэр өнгө, текстийн өнгө, текстийн сүүдрийг тохируулж болно. Та эндээс харж байгаачлан CSS хувийн шинж чанарыг ашиглахад л хангалттай.

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

Арьс тус бүрийн дэмжигдсэн хувьсагч болон өгөгдмөл утгуудыг эндээс харна уу:

gridzySkinClassic
ХувьсагчӨгөгдмөл утгаМэдээлэл
--backgroundrgba(0, 0, 0, .7)ямар ч CSS дэвсгэр утгыг зөвшөөрдөг
--colorrgb(255, 255, 255)ямар ч CSS өнгөний утгыг зөвшөөрдөг
--text-shadownoneямар ч CSS текст-сүүдрийн утгыг зөвшөөрдөг
gridzySkinFullOverlay
ХувьсагчӨгөгдмөл утгаМэдээлэл
--backgroundrgba(0, 0, 0, .7)ямар ч CSS дэвсгэр утгыг зөвшөөрдөг
--colorrgb(255, 255, 255)ямар ч CSS өнгөний утгыг зөвшөөрдөг
--text-shadownoneямар ч CSS текст-сүүдрийн утгыг зөвшөөрдөг
gridzySkinLift
ХувьсагчӨгөгдмөл утгаМэдээлэл
--backgroundrgba(0, 0, 0, .7)ямар ч CSS дэвсгэр утгыг зөвшөөрдөг
--colorrgb(255, 255, 255)ямар ч CSS өнгөний утгыг зөвшөөрдөг
--text-shadow0 0 10px rgb(0, 0, 0), 0 0 20px rgb(0, 0, 0), 0 0 30px rgb(0, 0, 0)ямар ч CSS текст-сүүдрийн утгыг зөвшөөрдөг
gridzySkinMagnifier
ХувьсагчӨгөгдмөл утгаМэдээлэл
--backgroundrgba(0, 0, 0, .7)ямар ч CSS дэвсгэр утгыг зөвшөөрдөг
--colorrgb(255, 255, 255)ямар ч CSS өнгөний утгыг зөвшөөрдөг

Энэ арьс --text-shadow дэмждэггүй

gridzySkinBlur
ХувьсагчӨгөгдмөл утгаМэдээлэл
--backgroundrgba(0, 0, 0, .7)ямар ч CSS дэвсгэр утгыг зөвшөөрдөг
--colorrgb(255, 255, 255)ямар ч CSS өнгөний утгыг зөвшөөрдөг
--text-shadow0 0 10px rgb(0, 0, 0)ямар ч CSS текст-сүүдрийн утгыг зөвшөөрдөг
gridzySkinCard
ХувьсагчӨгөгдмөл утгаМэдээлэл
--backgroundrgba(0, 0, 0, 1)ямар ч CSS дэвсгэр утгыг зөвшөөрдөг
--colorrgb(255, 255, 255)ямар ч CSS өнгөний утгыг зөвшөөрдөг
--text-shadownoneямар ч CSS текст-сүүдрийн утгыг зөвшөөрдөг

Бүх урьдчилан тодорхойлсон арьс нь зөвхөн энгийн текст тайлбарыг дэмждэг. Та өөрийн гэсэн, илүү төвөгтэй арьсаа үүсгэж болно. Style Gridzy- г харна уу.

Style Gridzy

Урьдчилан тодорхойлсон арьс таны хэрэгцээнд тохирохгүй бол та өөрийнхөө арьсанд зориулж загварчлах боломжтой.

Хамгийн хялбар арга бол эхлээд байгаа арьсыг хуулж аваад өөрийн хэрэгцээнд нийцүүлэх явдал юм. Урьдчилан тодорхойлсон skin gridzySkinBlank нь ихэвчлэн сайн суурь болж, 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;
}

CSS файлаас та gridzySkinBlank , gridzyImage болон gridzyCaption ангиудыг олох болно. Гридзи өөрөө эдгээр ангиуд хэрэггүй. Тэдгээрийг зөвхөн загварчлахад ашигладаг тул та хүсвэл устгаж эсвэл нэрийг нь өөрчилж болно.

Нэмж дурдахад та CSS ангиллын gridzyItem олох болно. Gridzy нь энэ ангийг үндсэн контейнер элементийн бүх шууд хүүхдүүд рүү автоматаар тохируулдаг. Тиймээс та энэ ангийг ашиглан галерейныхаа эд зүйлсийг загварчлах боломжтой.

Чухал зүйлсийг бодож үзээрэй

  1. Зүйлийн агуулга нь бүрэн хариу үйлдэл үзүүлэх ёстой. Элементийн хэмжээ мэдээж өөрчлөгдөх болно гэдгийг анхаарч үзээрэй. Пикселийн утгын оронд хувийн утгыг ашиглана уу. Мөн фонтын хэмжээг зүйлийн хайрцагны хэмжээтэй холбодог Gridzy layout сонголтын autoFontSize ийг харна уу.
  2. Зүйл бүр нь сайн тодорхойлсон харьцаатай байх ёстой. Тухайн зүйлийн харьцаа хэзээ ч өөрчлөгдөхгүй бөгөөд сүлжээг тооцоолоход шаардлагатай. Хэрэв тухайн зүйл автоматаар сайн тодорхойлогдсон харьцаатай байдаггүй бол үүнийг гараар (жишээ нь css-ээр) урьдчилан тодорхойлно уу.

Зарим тохиолдолд Gridzy-г эхлүүлэхээс өмнө зүйлийн агуулгыг загварчлах нь илүү хялбар байдаг. Үүний тулд gridzy анги эсвэл Gridzy javascript файлыг түр устгахад л хангалттай.

Ингээд л болоо! Өөрийнхөө арьсыг бүтээхэд энэ л хэрэгтэй. Урьдчилан тодорхойлсон арьсны ихэнх нь үүнээс илүүг ашигладаггүй.

Гэхдээ хэрэв та хүсвэл илүү олон зүйл байж болно ...

Нарийвчилсан арьс

Gridzy нь зөвхөн gridzyItem ээс илүү олон CSS анги ашигладаг. Тэдгээрийн ихэнхийг автоматаар тохируулах бөгөөд та тэдгээрийг загварчлахад ашиглаж болно.

Үндсэн савны ангиуд

Ангийн нэрТодорхойлолт
gridzy
гараар тохируулах
Gridzy энэ ангитай элементүүдийг автоматаар олж, эхлүүлдэг.
gridzyAnimatedХэрэв animate сонголт true бол автоматаар тохируулагдах болно. Хэрэв энэ ангийг гараар тохируулсан бол animate сонголт автоматаар true болно ( false гэж тодорхой тохируулаагүй бол).

Зүйлийн ангиуд

Ангийн нэрТодорхойлолт
gridzyItemТухайн зүйлийг эхлүүлэх процессыг эхлүүлэнгүүт тохируулна. Хэзээ ч хасагдахгүй.
gridzyItemInitializingТухайн зүйлийг эхлүүлэх процессыг эхлүүлэнгүүт тохируулна. Зүйлийг бүрэн эхлүүлэнгүүт gridzyItemReady -р солигдох болно. Энэ нь зураг бүрэн ачаалагдсан гэсэн үг биш ( gridzyItemLoading харна уу), гэхдээ зүйл харагдахад бэлэн байна.
gridzyItemReadyЗүйлийг бүрэн эхлүүлж дуусмагц gridzyItemInitializing солино. Хэзээ ч хасагдахгүй. Энэ нь зураг бүрэн ачаалагдсан гэсэн үг биш ( gridzyItemComplete үзнэ үү), гэхдээ зүйл харагдахад бэлэн байна.
gridzyItemLoadingТухайн зүйлийг эхлүүлэх процессыг эхлүүлэнгүүт тохируулна. Агуулагдсан зургууд (ихэвчлэн зөвхөн нэг) бүрэн ачаалагдсан үед gridzyItemComplete -ээр солигдоно.
gridzyItemCompleteАгуулагдсан зургуудыг (ихэвчлэн зөвхөн нэг) бүрэн ачаалсны дараа gridzyItemLoading солино. Хэзээ ч хасагдахгүй.
gridzyItemInitialToVisibleТухайн зүйл анх гарч ирмэгц тохируулагдана. Тухайн зүйл бүрэн харагдах үед устгагдах болно.
gridzyItemVisibleТухайн зүйл бүрэн харагдах үед шууд тохируулна. Тухайн зүйл алга болж эхэлмэгц устгагдах болно.
gridzyItemVisibleToHiddenТухайн зүйл алга болж эхэлмэгц тохируулна. Тухайн зүйлийг бүрэн нуунгуут устгах болно.
gridzyItemHiddenЗүйлийг бүрэн нуунгуут тохируулна. Тухайн зүйл гарч ирэнгүүт хасагдах болно.
gridzyItemHiddenToVisibleТухайн зүйл гарч ирэнгүүт тохируулагдах болно (анх удаа гарч ирэхээс бусад тохиолдолд - gridzyItemInitialToVisible ангиас үзнэ үү). Тухайн зүйл бүрэн харагдах үед устгагдах болно.
gridzyItemVisibleToVisibleСүлжээнд ямар нэг зүйл өөрчлөгдсөн даруйд тохируулах болно, гэхдээ тухайн зүйл нь өөрөө байсан бөгөөд харагдах болно. Өөрчлөлтийн хөдөлгөөнт дүрс дуусмагц устгагдах болно.

Анхдагч байдлаар процессын үзүүлэлт болон гарч ирэх, алга болох дүрсний хөдөлгөөнт дүрсийг Gridzy үндсэн CSS файлаар урьдчилан тодорхойлсон байдаг.

Дээр дурдсан CSS ангиудын тусламжтайгаар та өөрийн процессын үзүүлэлт болон хөдөлгөөнт дүрсийг загварчлах боломжтой. Та юуг хүчингүй болгох ёстойг ойлгохын тулд Gridzy үндсэн CSS файлыг үзээрэй. Айх хэрэггүй, тэнд бүх зүйл сайн бичигдсэн байдаг.

Ачааллыг оновчтой болгох

Хэрэв та олон зураг ашигладаг бол Gridzy-д сүлжээг хурдан бүтээхэд туслах нь зүйтэй.

Зургийг үсрэхээс урьдчилан сэргийлэх

Gridzy-д сүлжээг тооцоолохын тулд бүх зургийн харьцаа хэрэгтэй. Эдгээр баримт нь зарим зураг бэлэн байхад зарим нь бэлэн биш бол үсрэх элементүүдэд хүргэдэг. Илүү олон зураг байх тусам энэ нөлөө улам ядаргаатай байх болно.

Энэ үйлдлээс урьдчилан сэргийлэхийн тулд бүх img элементүүдийн width ба height шинж чанаруудыг тохируулахад хангалттай. Зураг тус бүрийн хувьд зөв утгыг тохируулах нь чухал бөгөөд эс тэгвээс зургууд гажуудах болно. Зөв утга нь тухайн зургийн анхны өргөн ба өндөр байна:

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

Үүний дараа Gridzy нь зургийн бодит хэмжээг мэдэх шаардлагагүйгээр сүлжээг шууд тооцоолж чадна.

Залхуу ачаалж байна

Зөвхөн харагдах цонхонд байгаа зургуудыг ачаалахын тулд дараах алхмуудыг дагана уу.

  1. Дээр дурдсанчлан width ба height шинж чанаруудыг оруулна уу (зөв утгуудыг ашиглахаа мартуузай)
  2. Доор үзүүлсэн шиг бүх src шинж чанаруудыг data-gridzylazysrc -ээр солино (хэрэв танд srcset шинж чанарууд байгаа бол тэдгээрийг 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>

Эдгээр алхмуудын дараа зургууд нь харагдах цонхны ойролцоо эсвэл дотор байх үед ачаалагдах болно.

Процессын үзүүлэлт

Процессын заагч нь зургийг ачаалж байх үед гарч ирэх жижиг хөдөлгөөнт дүрс юм. Хэрэв та тайлбар болон арьс хэрэглэвэл процессын үзүүлэлт автоматаар гарч ирнэ. Үгүй бол танд зарим тохируулга хэрэгтэй болно:

  1. img элемент бүрийг div элемент болгон оруулна
    (эсвэл өөр ямар ч элемент рүү - илүү ихийг семантик HTML-г үзнэ үү)
  2. img элемент бүрт gridzyImage анги нэмнэ
<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>

Үүний дараа зураг ачаалахад цаг хугацаа шаардагддаг бол процессын үзүүлэлтүүдийг харах хэрэгтэй.

Шүүлтүүр

Gridzy дахь шүүлтүүрүүд нь маш энгийн боловч хүчирхэг юм. Ямар ч төрлийн шүүлтүүр хэрэгтэй байсан ч энэ нь хэрэгжих магадлал өндөр юм. Танд хэрэгтэй зүйл бол бага зэрэг CSS болон HTML маягтын цөөн хэдэн элемент юм ...

Энд функциональ жишээ байна:

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

Үүнийг алхам алхмаар бүтээцгээе

1. Эхлээд бидэнд Gridzy-ийн ердийн HTML бүтэц хэрэгтэй бөгөөд бүх галерейн зүйлд ангийн нэрийг тохируулснаар дараа нь шүүж болно.

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

Энэ жишээнд бид элемент бүрт зөвхөн нэг анги ашигладаг. Гэхдээ та нэг элементэд олон ангиллыг тохируулж болно, хэрэв тэр элементийг олон шүүлтүүрээр олох боломжтой бол.

2. Дараа нь бид шүүлтүүрийг өөрчлөх боломжтой товчлууруудыг нэмнэ

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

Товчлуурын оронд та шалгах хайрцаг, радио товчлуур, сонгох талбар гэх мэт бусад хэлбэрийн элементүүдийг ашиглаж болно.

Таны харж байгаагаар товчлууруудын утга нь ердийн CSS сонгогч юм. Дуусмагц ийм товчлуур дээр дарахад тухайн CSS сонгогчтой таарч байгаа зургууд гарч ирнэ. Техникийн хувьд энэ нь filter сонголтыг энэ утгад тохируулдаг.

Та мөн илүү төвөгтэй сонгогч ашиглаж болно. Жишээ нь :not(.animals) мөн ажиллах болно, түүнчлэн .animals.people болон .animals, .people .

3. Эцэст нь бид товчлууруудыг div саванд хийж, filterControls сонголтыг тохируулан Gridzy галлерейд холбоно.

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

Таны харж байгаагаар бид filterControls сонголтын хувьд CSS сонгогчийг бас ашигладаг. id шинж чанар бүхий div контейнер нь зөвхөн тухайн CSS сонгогчоор товчлууруудыг сонгоход хялбар болгодог.

Ингээд л болоо!

Хэрэв та JavaScript шийдлийг илүүд үзэж байвал API-г шалгана уу.

API

Хэдийгээр Gridzy өөрийн API-тай ч ихэнх зүйлийг үүнгүйгээр зүгээр л DOM-ийг удирдах замаар хийж болно. Gridzy үүнийг анзаарч, сүлжээг тохируулах болно. Гэхдээ маш хүчирхэг API байдаг ...

DOM-г удирдах

Баримт бичгийн объектын загвар (DOM)-ийн бүх засварын хувьд бидэнд эхлээд контейнер элемент хэрэгтэй:

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

Зураг нэмэх

Шинэ хүүхэд элементийг савны элементэд нэмэхээсээ өмнө бүрэн бүтээж, дүүргэх нь чухал юм. Тэгэхгүй бол Gridzy зөв хэмжээсийг илрүүлж чадахгүй.

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

Зургийг устгах

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

Сонголтуудыг өөрчлөх

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

DOM-г удирдах талаар MDN вэб баримтаас олж болно. Мөн DOM-ийн танилцуулга байдаг.

Өмчийн API

API-г ашиглахын тулд эхлээд Gridzy контейнер элементтэй холбогдсон Gridzy жишээ хэрэгтэй:

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

Сонголт авах

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

Бүх сонголтыг авах

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

Сонголтуудыг тохируулах

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

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

Шүүлтүүр хэрэглэх

Шүүлтүүрийг ашиглах нь зүгээр л ямар ч хүчинтэй CSS сонгогч байж болох сонголтын filter тохируулах явдал юм:

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

Буцах дуудлагын функцийг нэмнэ үү

2.4.0 хувилбараас хойш ХУГАЦААГҮЙ
Оронд нь орчин үеийн, илүү уян хатан үйл явдлуудыг ашигла. Дэлгэрэнгүйг дараагийн хэсгээс үзнэ үү.

Gridzy.js 2 нь буцааж дуудах функцүүдийн зарим сонголтыг дэмждэг. Тэдгээрийг зөвхөн өмчийн API-ээр тохируулж болно, гэхдээ бусад сонголтуудын нэгэн адил:

// 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.
  }
});
Тодорхойлолт
onBeforeOptionsChangedСонголтыг тохируулахын өмнө шууд дуудагддаг буцаан дуудлагын функц.
onOptionsChangedСонголтуудыг тохируулсны дараа шууд дуудагддаг буцаан залгах функц.
onBeforeRenderДамжуулахын өмнө шууд дуудагддаг буцаан дуудлагын функц.
onRenderДуудлагын дараа шууд дуудагддаг функц.

Үйл явдал ашиглах

2.4.0 хувилбараас хойш

Та Gridzy үйл явдлуудыг ердийн 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.
});

Зарим үйл явдлуудыг Gridzy контейнер элемент дээр, бусад үйл явдлуудыг контейнер элемент доторх бие даасан элементийн элементүүд дээр ажиллуулдаг.

Gridzy контейнер элемент дээр гарсан үйл явдлууд:

Тодорхойлолт
gridzyBeforeInitГалерейг эхлүүлэхээс өмнө гал гарна.
gridzyInitГалерейг эхлүүлсний дараа гал гарна.
gridzyBeforeOptionsChangedСонголтуудыг тохируулахаас өмнө гал асаана.
gridzyOptionsChangedСонголтуудыг тохируулсны дараа асна.
gridzyBeforeRenderДүрслэхээс өмнө гал гаргадаг.
gridzyRenderҮзүүлсний дараа гал гардаг.
Хэрэв та энд ямар нэгэн арга хэмжээ авахгүй бол тусламжийн хүсэлт илгээнэ үү.

event.target Gridzy контейнер элементээр хангадаг.
event.detail.instance Gridzy жишээг өгдөг.

Зүйлийн элементүүд дээр гарсан үйл явдлууд:

Тодорхойлолт
gridzyItemBeforeInitЗүйлийг эхлүүлэхээс өмнө гал асаана.
gridzyItemInitЗүйлийг эхлүүлсний дараа асна.
gridzyItemLoadingЗүйлийг ачаалж эхлэх үед асаалттай.
gridzyItemReadyТухайн зүйл сүлжээг тооцоолоход бэлэн болсон үед гал асаана. Тэгэхээр харьцаа нь мэдэгдэж байгаа ч зураг ачаалагдаж байж магадгүй.
gridzyItemCompleteЗүйлийн зургийг бүрэн ачаалах үед асаана.
Хэрэв та энд ямар нэгэн арга хэмжээ авахгүй бол тусламжийн хүсэлт илгээнэ үү.

event.target тухайн зүйлийн элементийг хангадаг.
event.detail.instance Gridzy жишээг өгдөг.

API - Глобал

Gridzy instance-ээс хамааралгүй зарим функцууд байдаг. Тиймээс бид өмнө нь жишээ авах шаардлагагүй.

Өгөгдмөл сонголтыг авах

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

Бүх өгөгдмөл сонголтуудыг авах

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

Өгөгдмөл сонголтуудыг тохируулна уу

Энэ нь аль хэдийн эхлүүлсэн бүх Gridzy жишээнүүдийн сонголтыг тохируулахгүй, харин шинэ тохиолдлуудын үндсийг тодорхойлдог. Гэсэн хэдий ч, хэрэв байгаа жишээний сонголтыг null утгаар дахин тохируулах юм бол энэ нь шинэ өгөгдмөл утгыг ашиглана.

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

Хэрэв та үүнийг DOM бэлэн болохоос өмнө залгавал дэлхий даяар сонголтуудыг тохируулахад ашиглаж болно. Тиймээс та сонголтуудыг шинж чанар болгон тохируулах шаардлагагүй болно.

Автоматизмууд

Gridzy.js 2-ын бүх автоматизм идэвхтэй байгаа тохиолдолд доорх аргуудыг ашиглах шаардлагагүй болно. Гэхдээ Gridzy-г илүү уламжлалт аргаар ашиглахын тулд автоматизмыг унтрааж болно:

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

Эдгээр сонголтуудын заримыг нь логик шалтгааны улмаас data-gridzy- шинж чанар эсвэл setOptions() аар тохируулах боломжгүй:

Өгөгдмөл утгаТодорхойлолт
autoInitOnDomReadytrueХуудас ачаалах үед gridzy ангитай элементүүдийг илрүүлж, эхлүүлнэ.

Gridzy.setDefaultOptions() аар тохируулж болно
autoInitOnDomMutation
Мутацийн ажиглагч
trueШинэ ангиллын gridzy элементүүдийг DOM дээр гарч ирмэгц нь илрүүлж, эхлүүлнэ. (жишээ нь хуудасны шилжилтийг ашиглах)

Gridzy.setDefaultOptions() аар тохируулж болно
autoSyncChildListMutation
Мутацийн ажиглагч
trueХүүхэд элементүүд (зураг) нэмэгдсэн эсвэл устгагдсан эсэхийг илрүүлж, сүлжээг автоматаар шинэчилнэ.

data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions() ашиглан тохируулах боломжтой
useOptionAttributestruedata-gridzy- шинж чанарууд нь ерөнхийдөө ашиглагдаж байгаа эсэхийг тодорхойлдог. Хэрэв энэ нь false бол сонголтуудыг зөвхөн өмчийн API-ээр тохируулж болно.

new Gridzy() , setOptions() , Gridzy.setDefaultOptions() ашиглан тохируулах боломжтой
autoSyncAttributesMutation
Мутацийн ажиглагч
truedata-gridzy- шинж чанаруудын өөрчлөлтийг илрүүлж, сүлжээг автоматаар шинэчилнэ. Мөн gridzyAnimated анги нэмэгдсэн эсвэл хасагдсан, style шинж чанар өөрчлөгдсөн эсэхийг илрүүлдэг. Хэрэв useOptionAttributes нь false бол энэ нь зөвхөн style шинж чанарын өөрчлөлтийг илрүүлдэг.

data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions() ашиглан тохируулах боломжтой
autoSyncChildClassMutation
Мутацийн ажиглагч
trueБүх хүүхдийн элементүүдийн (зураг) class шинж чанаруудын өөрчлөлтийг илрүүлдэг. Шүүлтүүртэй холбоотой.

data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions() ашиглан тохируулах боломжтой
autoSyncImageMutation
Мутацийн ажиглагч

2.5.0 хувилбараас хойш
trueБүх зургийн src шинж чанарын өөрчлөлтийг илрүүлдэг. React эсвэл үүнтэй төстэй сангуудтай ашиглахад хамааралтай.

data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions() ашиглан тохируулах боломжтой
autoRenderOnResize
ResizeObserver

2.6.0 хувилбараас хойш
trueЭлементийн өргөний өөрчлөлтийг илрүүлдэг. Хариуцлагатай дизайнтай холбоотой. (2.6.0 хувилбараас өмнө цонхны хэмжээг өөрчлөх үйл явдлын сонсогч ашиглаж байсан)

data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions() ашиглан тохируулах боломжтой

Гараар эхлүүлэх

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

Инстанцыг устгах

Ойролцоогоор Gridzy эхлүүлэхийн эсрэгээр.

gridzyInstance.destroy();
gridzyInstance = null;

Хүүхдийн жагсаалтыг гараар синк хийх

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

Ганц хүүхэд элементийг гараар синк хийх

Маш ховор тохиолдлоос бусад тохиолдолд ихэвчлэн шаардлагагүй байдаг.

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

Шинж чанаруудыг гараар синк хийх

Үүнд useOptionAttributes сонголт true байх ёстойг анхаарна уу.

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

Хүчээр дүрслэх

Бүх автоматизмыг унтраасан ч гэсэн ихэвчлэн шаардлагагүй байдаг

gridzyInstance.render();