Веб-сайт автоматты түрде аударылды. Егер бірдеңе түсініксіз болса, ағылшын тіліндегі құжаттаманы қараңыз.
Негізгі қолдану
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 құрылымы қажет. Бұл туралы көбірек білу үшін Жазбалар мен мұқабаларды қараңыз.
Жазулар және мұқабалар
Галереяға жазулар қосқыңыз келсе, сыртқы түрін анықтауыңыз керек. Сондықтан, кейбір алдын ала анықталған мұқабалар қол жетімді. 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 құрылымы туралы білгіңіз келсе, семантикалық 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 мәтіндік көлеңке мәнін береді |
Барлық алдын ала анықталған мұқабалар тек қарапайым мәтін тақырыптарын қолдайды. Сіз өзіңіздің жеке және күрделірек мұқабаларыңызды жасай аласыз. Стиль Гридзиге қараңызшы.
Гридзи стилі
Егер алдын ала анықталған тері қажеттіліктеріңізге сәйкес келмесе, өз бетіңізді сәндеуге болады.
Ең оңай жолы - алдымен бар мұқабаны көшіріп, оны өз қажеттіліктеріңізге бейімдеу. Алдын ала анықталған тері 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 орналасу опциясын
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 басқару арқылы жасауға болады. Гридзи оны байқап, торды реттейді. Бірақ өте күшті 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 даналарына тәуелсіз кейбір функциялар бар. Сондықтан бізге бұрын дананы алудың қажеті жоқ.
Әдепкі опцияны алыңыз
// 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();