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 құрылымы қажет. Бұл туралы көбірек білу үшін Жазбалар мен мұқабаларды қараңыз.

Жазулар және мұқабалар

Галереяға жазулар қосқыңыз келсе, сыртқы түрін анықтауыңыз керек. Сондықтан, кейбір алдын ала анықталған мұқабалар қол жетімді. 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
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 мәтіндік көлеңке мәнін береді

Барлық алдын ала анықталған мұқабалар тек қарапайым мәтін тақырыптарын қолдайды. Сіз өзіңіздің жеке және күрделірек мұқабаларыңызды жасай аласыз. Стиль Гридзиге қараңызшы.

Гридзи стилі

Егер алдын ала анықталған тері қажеттіліктеріңізге сәйкес келмесе, өз бетіңізді сәндеуге болады.

Ең оңай жолы - алдымен бар мұқабаны көшіріп, оны өз қажеттіліктеріңізге бейімдеу. Алдын ала анықталған тері 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 орналасу опциясын autoFontSize қараңыз.
  2. Әрбір элементтің нақты анықталған арақатынасы болуы керек. Элементтің арақатынасы ешқашан өзгермейді және торды есептеу үшін қажет. Сонымен, элементтің автоматты түрде жақсы анықталған арақатынасы болмаса, оны қолмен алдын ала анықтаңыз (мысалы, CSS арқылы).

Кейбір жағдайларда Gridzy баптандыру алдында элементтердің мазмұнын мәнерлеу оңайырақ болуы мүмкін. Ол үшін gridzy класын немесе Gridzy JavaScript файлын уақытша алып тастаңыз.

Міне бітті! Бұл сізге өзіңіздің теріңізді жасау үшін қажет нәрсе. Алдын ала анықталған мұқабалардың көпшілігі осыдан артық пайдаланбайды.

Бірақ егер сізге ұнаса, одан да көп болуы мүмкін ...

Жетілдірілген мұқабалар

Gridzy тек gridzyItem қарағанда көбірек CSS сыныптарын пайдаланады. Олардың көпшілігі автоматты түрде орнатылады және оларды сәндеу үшін де пайдалануға болады.

Контейнерлердің негізгі кластары

Сынып атауыСипаттама
gridzy
қолмен орнату
Gridzy осы класстағы элементтерді автоматты түрде тауып, оларды инициализациялайды.
gridzyAnimatedanimate опциясы 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 басқару арқылы жасауға болады. Гридзи оны байқап, торды реттейді. Бірақ өте күшті 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 даналарына тәуелсіз кейбір функциялар бар. Сондықтан бізге бұрын дананы алудың қажеті жоқ.

Әдепкі опцияны алыңыз

// 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
Мутация бақылаушысы
truegridzy класы бар жаңа элементтерді 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();