Вэбсайтыг автоматаар орчуулсан. Хэрэв ямар нэг зүйл тодорхойгүй байвал англи хэл дээрх баримт бичгийг харна уу.
Үндсэн хэрэглээ
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>Үндсэн сонголтууд
Justified Байршлын сонголтууд
Waterfall Байршлын сонголтууд
Илүү нарийвчилсан сонголтууд
Илүү дэвшилтэт сонголтуудыг 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(2.6.0 хувилбараас хойш ХУГАЦААГҮЙ) |
| gridzySkinFullOverlay шууд урьдчилан үзэх | gridzySkinFullOverlay(2.6.0 хувилбараас хойш ХУГАЦААГҮЙ) |
| gridzySkinLift шууд урьдчилан үзэх | gridzySkinLift(2.6.0 хувилбараас хойш ХУГАЦААГҮЙ) |
| gridzySkinMagnifier томруулах функцийг оруулаагүй болно шууд урьдчилан үзэх | gridzySkinMagnifier(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(2.6.0 хувилбараас хойш ХУГАЦААГҮЙ) |
| gridzySkinCard шууд урьдчилан үзэх | gridzySkinCard(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
| Хувьсагч | Өгөгдмөл утга | Мэдээлэл |
|---|---|---|
--background | rgba(0, 0, 0, .7) | ямар ч CSS дэвсгэр утгыг зөвшөөрдөг |
--color | rgb(255, 255, 255) | ямар ч CSS өнгөний утгыг зөвшөөрдөг |
--text-shadow | none | ямар ч CSS текст-сүүдрийн утгыг зөвшөөрдөг |
gridzySkinFullOverlay
| Хувьсагч | Өгөгдмөл утга | Мэдээлэл |
|---|---|---|
--background | rgba(0, 0, 0, .7) | ямар ч CSS дэвсгэр утгыг зөвшөөрдөг |
--color | rgb(255, 255, 255) | ямар ч CSS өнгөний утгыг зөвшөөрдөг |
--text-shadow | none | ямар ч CSS текст-сүүдрийн утгыг зөвшөөрдөг |
gridzySkinLift
| Хувьсагч | Өгөгдмөл утга | Мэдээлэл |
|---|---|---|
--background | rgba(0, 0, 0, .7) | ямар ч CSS дэвсгэр утгыг зөвшөөрдөг |
--color | rgb(255, 255, 255) | ямар ч CSS өнгөний утгыг зөвшөөрдөг |
--text-shadow | 0 0 10px rgb(0, 0, 0), 0 0 20px rgb(0, 0, 0), 0 0 30px rgb(0, 0, 0) | ямар ч CSS текст-сүүдрийн утгыг зөвшөөрдөг |
gridzySkinMagnifier
| Хувьсагч | Өгөгдмөл утга | Мэдээлэл |
|---|---|---|
--background | rgba(0, 0, 0, .7) | ямар ч CSS дэвсгэр утгыг зөвшөөрдөг |
--color | rgb(255, 255, 255) | ямар ч CSS өнгөний утгыг зөвшөөрдөг |
Энэ арьс --text-shadow дэмждэггүй
gridzySkinBlur
| Хувьсагч | Өгөгдмөл утга | Мэдээлэл |
|---|---|---|
--background | rgba(0, 0, 0, .7) | ямар ч CSS дэвсгэр утгыг зөвшөөрдөг |
--color | rgb(255, 255, 255) | ямар ч CSS өнгөний утгыг зөвшөөрдөг |
--text-shadow | 0 0 10px rgb(0, 0, 0) | ямар ч CSS текст-сүүдрийн утгыг зөвшөөрдөг |
gridzySkinCard
| Хувьсагч | Өгөгдмөл утга | Мэдээлэл |
|---|---|---|
--background | rgba(0, 0, 0, 1) | ямар ч CSS дэвсгэр утгыг зөвшөөрдөг |
--color | rgb(255, 255, 255) | ямар ч CSS өнгөний утгыг зөвшөөрдөг |
--text-shadow | none | ямар ч 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 нь энэ ангийг үндсэн контейнер элементийн бүх шууд хүүхдүүд рүү автоматаар тохируулдаг. Тиймээс та энэ ангийг ашиглан галерейныхаа эд зүйлсийг загварчлах боломжтой.
Чухал зүйлсийг бодож үзээрэй
- Зүйлийн агуулга нь бүрэн хариу үйлдэл үзүүлэх ёстой. Элементийн хэмжээ мэдээж өөрчлөгдөх болно гэдгийг анхаарч үзээрэй. Пикселийн утгын оронд хувийн утгыг ашиглана уу. Мөн фонтын хэмжээг зүйлийн хайрцагны хэмжээтэй холбодог Gridzy layout сонголтын
autoFontSizeийг харна уу. - Зүйл бүр нь сайн тодорхойлсон харьцаатай байх ёстой. Тухайн зүйлийн харьцаа хэзээ ч өөрчлөгдөхгүй бөгөөд сүлжээг тооцоолоход шаардлагатай. Хэрэв тухайн зүйл автоматаар сайн тодорхойлогдсон харьцаатай байдаггүй бол үүнийг гараар (жишээ нь 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 нь зургийн бодит хэмжээг мэдэх шаардлагагүйгээр сүлжээг шууд тооцоолж чадна.
Залхуу ачаалж байна
Зөвхөн харагдах цонхонд байгаа зургуудыг ачаалахын тулд дараах алхмуудыг дагана уу.
- Дээр дурдсанчлан
widthбаheightшинж чанаруудыг оруулна уу (зөв утгуудыг ашиглахаа мартуузай) - Доор үзүүлсэн шиг бүх
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>Эдгээр алхмуудын дараа зургууд нь харагдах цонхны ойролцоо эсвэл дотор байх үед ачаалагдах болно.
Процессын үзүүлэлт
Процессын заагч нь зургийг ачаалж байх үед гарч ирэх жижиг хөдөлгөөнт дүрс юм. Хэрэв та тайлбар болон арьс хэрэглэвэл процессын үзүүлэлт автоматаар гарч ирнэ. Үгүй бол танд зарим тохируулга хэрэгтэй болно:
imgэлемент бүрийгdivэлемент болгон оруулна
(эсвэл өөр ямар ч элемент рүү - илүү ихийг семантик HTML-г үзнэ үү)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.
}
});Үйл явдал ашиглах
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 контейнер элемент дээр гарсан үйл явдлууд:
event.target Gridzy контейнер элементээр хангадаг.
event.detail.instance Gridzy жишээг өгдөг.
Зүйлийн элементүүд дээр гарсан үйл явдлууд:
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() аар тохируулах боломжгүй:
Гараар эхлүүлэх
// 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();