Вебсайт автоматик рәвештә тәрҗемә ителде. Әгәр дә берәр нәрсә аңлашылмаса, зинһар, инглиз документларына игътибар итегез.
Төп куллану
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
Гридзиның иң гади 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>Ләкин, Гридзи бик сыгылучан һәм сез бүтән 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 структурасы кирәк. Бу турыда күбрәк белү өчен, Тапшырулар һәм тиреләрне карагыз.
Язулар һәм тиреләр
Галереягызга язулар өстәргә теләсәгез, тышкы кыяфәтне билгеләргә кирәк. Шуңа күрә кайбер алдан билгеләнгән тиреләр бар. Eachәрбер тире 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 класс кирәк.
Aboveгарыдагы мисал сезгә gridzySkinClassic тиресен күрсәтә. Башкасын куллану өчен, тире исемен шуларның берсенә алыштырыгыз:
Тере
| Мөмкин класслар | |
|---|---|
| gridzySkinBlank үз тиреңне булдыру өчен яхшы башлангыч турыдан-туры карау | gridzySkinBlank |
| gridzySkinClassic турыдан-туры карау | gridzySkinClassic(2.6.0 версиясеннән төшкән) |
| gridzySkinFullOverlay турыдан-туры карау | gridzySkinFullOverlay(2.6.0 версиясеннән төшкән) |
| gridzySkinLift турыдан-туры карау | gridzySkinLift(2.6.0 версиясеннән төшкән) |
| gridzySkinMagnifier зурайту функциясе кертелмәгән турыдан-туры карау | gridzySkinMagnifier(2.6.0 версиясеннән төшкән) |
Aboveгарыдагы барлык тиреләргә 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>Hereәрбер тире өчен ярдәмче үзгәрүчәннәрне һәм килешү кыйммәтләрен карагыз:
gridzySkinClassic
| Variзгәрешле | Килешенгән кыйммәт | Мәгълүмат |
|---|---|---|
--background | rgba(0, 0, 0, .7) | теләсә нинди CSS фон кыйммәтен рөхсәт итә |
--color | rgb(255, 255, 255) | теләсә нинди CSS төс кыйммәтен рөхсәт итә |
--text-shadow | none | теләсә нинди CSS текст-күләгә кыйммәтен рөхсәт итә |
gridzySkinFullOverlay
| Variзгәрешле | Килешенгән кыйммәт | Мәгълүмат |
|---|---|---|
--background | rgba(0, 0, 0, .7) | теләсә нинди CSS фон кыйммәтен рөхсәт итә |
--color | rgb(255, 255, 255) | теләсә нинди CSS төс кыйммәтен рөхсәт итә |
--text-shadow | none | теләсә нинди CSS текст-күләгә кыйммәтен рөхсәт итә |
gridzySkinLift
| Variзгәрешле | Килешенгән кыйммәт | Мәгълүмат |
|---|---|---|
--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
| Variзгәрешле | Килешенгән кыйммәт | Мәгълүмат |
|---|---|---|
--background | rgba(0, 0, 0, .7) | теләсә нинди CSS фон кыйммәтен рөхсәт итә |
--color | rgb(255, 255, 255) | теләсә нинди CSS төс кыйммәтен рөхсәт итә |
Бу тире --text-shadow ярдәм итми
gridzySkinBlur
| Variзгәрешле | Килешенгән кыйммәт | Мәгълүмат |
|---|---|---|
--background | rgba(0, 0, 0, .7) | теләсә нинди CSS фон кыйммәтен рөхсәт итә |
--color | rgb(255, 255, 255) | теләсә нинди CSS төс кыйммәтен рөхсәт итә |
--text-shadow | 0 0 10px rgb(0, 0, 0) | теләсә нинди CSS текст-күләгә кыйммәтен рөхсәт итә |
gridzySkinCard
| Variзгәрешле | Килешенгән кыйммәт | Мәгълүмат |
|---|---|---|
--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 макетын карагыз
autoFontSize, шрифт зурлыгын предмет тартмасы зурлыгына бәйли. - Eachәрбер әйбер яхшы билгеләнгән аспектка ия булырга тиеш. Предметның аспект өлеше беркайчан да үзгәрмәячәк һәм челтәрне исәпләү өчен кирәк. Димәк, берәр әйбернең автоматик рәвештә яхшы билгеләнгән аспектлары булмаса, аны кул белән алдан билгеләгез (мәсәлән, css аша).
Кайбер очракларда, Гридзи башланганчы, әйберләрнең эчтәлеген стильләштерү җиңелрәк булырга мөмкин. Моның өчен вакытлыча класслы gridzy яки Gridzy javascript файлын бетерегез.
Бу! Бу сезнең үз тирегезне төзү өчен кирәк. Алдан билгеләнгән тиреләрнең күбесе моны күбрәк кулланмый.
Ләкин сез теләсәгез тагын да күбрәк булырга мөмкин ...
Алга киткән тиреләр
Gridzy gridzyItem тан гына күбрәк CSS классларын куллана. Аларның күбесе автоматик рәвештә урнаштырылачак, сез аларны стиллау өчен дә куллана аласыз.
Төп контейнер класслары
| Класс исеме | Тасвирлау |
|---|---|
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 | Челтәрдә нәрсәдер үзгәргәннән соң урнаштырылачак, ләкин әйбер үзе булган һәм күренеп торган. Changeзгәртү анимациясе беткәч бетереләчәк. |
Килешү буенча процесс индикаторы һәм рәсемнәрнең барлыкка килүе һәм юкка чыгуы өчен анимацияләр Gridzy төп CSS файлында алдан билгеләнгән.
Aboveгарыда телгә алынган CSS класслары белән сез үзегезнең процесс индикаторын һәм анимацияләрне ясый аласыз. Gridzy төп CSS файлына карарга батырчылык итегез, сез нәрсәдән баш тартырга тиешлеген аңлау өчен. Курыкмый, анда барысы да яхшы документлаштырылган.
Йөкләү оптимизациясе
Әгәр дә сез күп рәсемнәр куллансагыз, Гридзига челтәрне тизрәк төзергә булышу яхшы идея булырга мөмкин.
Сикерү рәсемнәрен булдырмагыз
Челтәрне исәпләү өчен Гридзига барлык рәсемнәрнең аспект өлеше кирәк. Бу факт кайбер элементларга әзер булса, сикерү элементларына китерә. Рәсемнәр күбрәк булган саен, бу эффект шулкадәр күңелсезләнергә мөмкин.
Бу тәртипне булдырмас өчен, барлык img элементлары өчен width һәм height атрибутларын куегыз. Individualәрбер рәсем өчен дөрес кыйммәтләр кую мөһим, югыйсә сурәтләр бозылыр иде. Дөрес кыйммәтләр - тиешле рәсемнең оригиналь киңлеге һәм биеклеге:
<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>Аннан соң Гридзи челтәрнең рәсемнәрнең зурлыкларын белмичә шунда ук исәпли ала.
Ялкау
Күренгән күренештә булган рәсемнәрне генә йөкләү өчен, бу адымнарны үтәгез:
- Aboveгарыда әйтелгәнчә
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>Бу адымнардан соң рәсемнәр визупорт янында яки эчендә йөкләнәчәк.
Процесс күрсәткече
Процесс индикаторы - рәсем йөкләнгән вакытта барлыкка килгән кечкенә анимация иконасы. Әгәр сез язуларны һәм тиреләрне куллансагыз, процесс индикаторы автоматик рәвештә күрсәтеләчәк. Otherwiseгыйсә сезгә кайбер үзгәрешләр кирәк:
- Imәрбер
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>Аннан соң, процесс йөкләү өчен вакыт кирәк булса, процесс күрсәткечләрен күрергә кирәк.
Фильтрлар
Гридзидагы фильтрлар бик гади, ләкин көчле. Сезгә нинди фильтр кирәк булса да, аны тормышка ашыру бик ихтимал. Сезгә бары тик бераз 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. Башта безгә Гридзиның гадәти 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 параметрын куеп, аларны Гридзи галереясенә бәйлибез:
<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');Рәсемнәр өстәгез
Контейнер элементына өстәгәнче, яңа бала элементын тулысынча төзү һәм тутыру мөһим. Otherwiseгыйсә Гридзи дөрес үлчәмнәрне таба алмый.
// 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 контейнер элементына, ә башка вакыйгалар контейнер элементындагы аерым элементларга атыла.
Гридзи контейнер элементында булган вакыйгалар:
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 барлык автоматизмнары актив булганда, түбәндәге ысулларга ихтыяҗ юк. Ләкин Гридзины традицион куллану өчен автоматизмны сүндерергә мөмкин:
// 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'
});Инстанцияне җимерегез
Төгәл әйтелде, Гридзи башлау киресе.
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();