Версияи 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Муайян мекунад, ки кадом унсурҳои формаро барои филтр кардани тасвирҳо истифода бурдан мумкин аст. Ҳама гуна интихобкунандаи CSS, ки унсурҳои шакли HTML-ро интихоб мекунад, метавонад дар ин ҷо ҳамчун арзиш истифода шавад.
Филтрҳоро санҷед
autoConsiderScrollBarstrueБарои пешгӯии паҳнои дастрас, агар сатрҳои ҳаракат пайдо шаванд ё нопадид шаванд. Ҳамеша тавсия дода мешавад, ки онро true гузоред, агар ин автоматизм боиси мушкилот нагардад.

Justified Имконоти тарҳрезӣ

Арзиши пешфарзТавсифи
autoFontSizefalseХусусияти шрифти андозаи ҳар як қуттӣ дар асоси андозаи аслии қуттӣ ба таври худкор навсозӣ мекунад. Бо нобаёнӣ хосияти font-size ба таври возеҳ муқаррар карда нашудааст.
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
trueАз версияи 2.4.0 ХОЧУ ШУД ( Аз версияи 2.3.0 КАРОФТ шудааст)
Тасвирҳоро тавре ҷойгир мекунад, ки сатри охирин ҳамеша пурра пур карда шавад. Агар шумо нақшаи ба таври динамикӣ илова кардани тасвирҳо дошта бошед, ин метавонад фикри хубе бошад, ки онро ғайрифаъол кунед.
Ба сатрҳои ягона таъсир намерасонад (ниг. fillSingleRow ).
fillSingleRow
аз версияи 2.1.0
trueАз версияи 2.4.0 ХОЧУ ШУД ( Аз версияи 2.3.0 КАРОФТ шудааст)
Агар танҳо як сатр мавҷуд бошад, он тасвирҳоро тавре ҷойгир мекунад, ки сатр ҳамеша пурра пур карда шавад. Агар чунин рӯй диҳад, ки шумо дар галерея танҳо як ё ду тасвир дошта бошед, ин метавонад фикри хубе бошад, ки онро ғайрифаъол кунед.

Waterfall Имконоти тарҳрезӣ

Арзиши пешфарзТавсифи
autoFontSizefalseХусусияти шрифти андозаи ҳар як қуттӣ дар асоси андозаи аслии қуттӣ ба таври худкор навсозӣ мекунад. Бо нобаёнӣ хосияти font-size ба таври возеҳ муқаррар карда нашудааст.
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 семантикӣ

Сохтори соддатарини HTML-и Gridzy ин аст:

<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 лозим аст. Барои гирифтани маълумоти бештар дар бораи он, ба Captions & Skins нигаред.

Сарлавҳаҳо ва пӯстҳо

Агар шумо хоҳед, ки ба галереяи худ сарлавҳаҳо илова кунед, шумо бояд намуди зоҳириро муайян кунед. Аз ин рӯ, баъзе пӯстҳои пешакӣ муайяншуда мавҷуданд. Ҳар як пӯст аз файли CSS иборат аст. Шумо бояд ин файлро илова ба файлҳои асосии Gridzy илова кунед (одатан дар қисмати сар):

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

Ғайр аз он, ба шумо сохтори пешрафтаи HTML лозим аст:

<div class="gridzy gridzySkinClassic">
  <figure>
    <img class="gridzyImage" src="https://loremflickr.com/640/480?random=1" alt="a random image" />
    <figcaption class="gridzyCaption">a caption text</figcaption>
  </figure>
  <figure>
    <img class="gridzyImage" src="https://loremflickr.com/480/640?random=2" alt="another random image" />
    <figcaption class="gridzyCaption">another caption text</figcaption>
  </figure>
  <figure>
    <img class="gridzyImage" src="https://loremflickr.com/640/640?random=3" alt="yet another random image" />
    <figcaption class="gridzyCaption">yet another caption text</figcaption>
  </figure>
  <figure>
    <img class="gridzyImage" src="https://loremflickr.com/640/480?random=4" alt="a random image again" />
    <figcaption class="gridzyCaption">a caption text again</figcaption>
  </figure>
  <figure>
    <img class="gridzyImage" src="https://loremflickr.com/640/480?random=5" alt="one last random image" />
    <figcaption class="gridzyCaption">one last caption text</figcaption>
  </figure>
</div>

Агар шумо дар бораи сохтори HTML дар ҳайрат бошед, ба семантикии HTML нигаред.

Барои сарлавҳа шумо метавонед ҳама гуна тегро истифода баред, танҳо боварӣ ҳосил кунед, ки он дорои синфи gridzyCaption . Унсури img ба синфи gridzyImage ниёз дорад.

Мисоли боло ба шумо пӯсти gridzySkinClassic нишон медиҳад. Барои истифодаи дигаре, танҳо номи пӯстро бо яке аз инҳо иваз кунед:

Пӯстҳои дохилшуда

Синфҳои дастрас
gridzySkinBlank
нуқтаи ибтидоии хуб барои эҷоди пӯсти худ
пешнамоиши зинда
gridzySkinBlank
gridzySkinClassic
пешнамоиши зинда
gridzySkinClassic
gridzySkinClassicLight(Аз версияи 2.6.0 КАТОР ШУД)
gridzySkinFullOverlay
пешнамоиши зинда
gridzySkinFullOverlay
gridzySkinFullOverlayLight(Аз версияи 2.6.0 КАТОР ШУД)
gridzySkinLift
пешнамоиши зинда
gridzySkinLift
gridzySkinLiftLight(Аз версияи 2.6.0 КАТОР ШУД)
gridzySkinMagnifier
функсияи масштаб дохил карда нашудааст
пешнамоиши зинда
gridzySkinMagnifier
gridzySkinMagnifierLight(Аз версияи 2.6.0 КАТОР ШУД)

Ҳама пӯстҳои дар боло зикршуда танҳо ба файли CSS ниёз доранд, аммо пӯстҳои иловагӣ мавҷуданд, ки файли JavaScript-ро низ талаб мекунанд:

<link rel="stylesheet" href="gridzy/skins/gridzySkinBlur/style.min.css" />
<script src="gridzy/skins/gridzySkinBlur/script.min.js"></script>
Синфҳои дастрас
gridzySkinBlur
дар IE кор намекунад
пешнамоиши зинда
gridzySkinBlur
gridzySkinBlurLight(Аз версияи 2.6.0 КАТОР ШУД)
gridzySkinCard
пешнамоиши зинда
gridzySkinCard
gridzySkinCardLight(Аз версияи 2.6.0 КАТОР ШУД)

Имконоти пӯст

Аз версияи 2.6.0 Имкониятҳо барои танзими пӯстҳои дарунсохт мавҷуданд. Вобаста аз пӯсти мушаххас шумо метавонед ранги замина, ранги матн ва сояи матнро таъин кунед. Шумо танҳо бояд хосиятҳои фармоишии CSS-ро истифода баред, тавре ки дар ин ҷо мебинед:

<div class="gridzy gridzySkinClassic" style="--background: rgba(0, 80, 117, .8); --color: rgb(238, 238, 238); ">
  <figure>
    <img class="gridzyImage" src="https://loremflickr.com/640/480?random=1" alt="a random image" />
    <figcaption class="gridzyCaption">a caption text</figcaption>
  </figure>
  <figure>
    <img class="gridzyImage" src="https://loremflickr.com/480/640?random=2" alt="another random image" />
    <figcaption class="gridzyCaption">another caption text</figcaption>
  </figure>

  ...

</div>

Тағирёбандаҳои дастгирӣшаванда ва арзишҳои пешфарзро барои ҳар як пӯст дар ин ҷо санҷед:

gridzySkinClassic
ТағйирёбандаАрзиши пешфарзМаълумот
--backgroundrgba(0, 0, 0, .7)имкон медиҳад, ки ҳар як арзиши заминаи CSS
--colorrgb(255, 255, 255)ба ҳама гуна арзиши ранги CSS имкон медиҳад
--text-shadownoneба ҳама гуна арзиши сояи матни CSS имкон медиҳад
gridzySkinFullOverlay
ТағйирёбандаАрзиши пешфарзМаълумот
--backgroundrgba(0, 0, 0, .7)имкон медиҳад, ки ҳар як арзиши заминаи CSS
--colorrgb(255, 255, 255)ба ҳама гуна арзиши ранги CSS имкон медиҳад
--text-shadownoneба ҳама гуна арзиши сояи матни CSS имкон медиҳад
gridzySkinLift
ТағйирёбандаАрзиши пешфарзМаълумот
--backgroundrgba(0, 0, 0, .7)имкон медиҳад, ки ҳар як арзиши заминаи CSS
--colorrgb(255, 255, 255)ба ҳама гуна арзиши ранги CSS имкон медиҳад
--text-shadow0 0 10px rgb(0, 0, 0), 0 0 20px rgb(0, 0, 0), 0 0 30px rgb(0, 0, 0)ба ҳама гуна арзиши сояи матни CSS имкон медиҳад
gridzySkinMagnifier
ТағйирёбандаАрзиши пешфарзМаълумот
--backgroundrgba(0, 0, 0, .7)имкон медиҳад, ки ҳар як арзиши заминаи CSS
--colorrgb(255, 255, 255)ба ҳама гуна арзиши ранги CSS имкон медиҳад

Ин пӯст --text-shadow дастгирӣ намекунад

gridzySkinBlur
ТағйирёбандаАрзиши пешфарзМаълумот
--backgroundrgba(0, 0, 0, .7)имкон медиҳад, ки ҳар як арзиши заминаи CSS
--colorrgb(255, 255, 255)ба ҳама гуна арзиши ранги CSS имкон медиҳад
--text-shadow0 0 10px rgb(0, 0, 0)ба ҳама гуна арзиши сояи матни CSS имкон медиҳад
gridzySkinCard
ТағйирёбандаАрзиши пешфарзМаълумот
--backgroundrgba(0, 0, 0, 1)имкон медиҳад, ки ҳар як арзиши заминаи CSS
--colorrgb(255, 255, 255)ба ҳама гуна арзиши ранги CSS имкон медиҳад
--text-shadownoneба ҳама гуна арзиши сояи матни CSS имкон медиҳад

Ҳама пӯстҳои пешакӣ муайяншуда танҳо сарлавҳаҳои оддии матнро дастгирӣ мекунанд. Шумо метавонед пӯстҳои хеле мураккаби худро эҷод кунед. Лутфан ба Style Gridzy назар андозед.

Style Gridzy

Агар ягон пӯсти пешакӣ муайяншуда ба ниёзҳои шумо мувофиқат накунад, шумо метавонед пӯсти худро ороиш диҳед.

Роҳи осонтарин ин аст, ки аввал пӯсти мавҷударо нусхабардорӣ кунед ва онро ба ниёзҳои худ мутобиқ кунед. 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 хоҳед ёфт. Худи Gridzy ба ин синфҳо ниёз надорад. Онҳо танҳо барои ороиш истифода мешаванд ва аз ин рӯ, агар хоҳед, шумо метавонед онҳоро хориҷ кунед ё номи онҳоро тағир диҳед.

Илова бар ин, шумо синфи CSS-ро хоҳед ёфт gridzyItem . Gridzy ин синфро ба таври худкор ба ҳамаи кӯдакони мустақими унсури контейнери асосӣ муқаррар мекунад. Ҳамин тавр, шумо метавонед ин синфро барои услуби ҷузъҳои галереяи худ истифода баред.

Чизҳои муҳимро фикр кунед

  1. Мундариҷаи ашё бояд пурра ҷавобгӯ бошад. Ба назар гиред, ки андозаи элемент бешубҳа тағир хоҳад ёфт. Ба ҷои арзишҳои пиксел арзишҳои фоизро истифода баред. Ва ба варианти тарҳбандии Gridzy autoFontSize нигаред, ки андозаи шрифтро ба андозаи қуттии ашё мепайвандад.
  2. Ҳар як ашё бояд таносуби ҷанбаҳои хуб муайяншуда дошта бошад. Таносуби ҷанбаҳои ашё ҳеҷ гоҳ тағир намеёбад ва барои ҳисоб кардани шабака зарур аст. Ҳамин тавр, агар ашё ба таври худкор таносуби ҷанбаҳои хуб муайяншуда надошта бошад, онро дастӣ муайян кунед (масалан, тавассути css).

Дар баъзе мавридҳо, пеш аз оғоз кардани Gridzy услуби мундариҷаи ашёро осонтар кардан мумкин аст. Барои ин танҳо синфи gridzy ё файли javascript Gridzy-ро муваққатан хориҷ кунед.

Ана тамом! Ин ҳама чизест, ки ба шумо барои сохтани пӯсти шахсии худ лозим аст. Аксари пӯстҳои пешакӣ муайяншуда аз ин бештар истифода намебаранд.

Аммо агар ба шумо маъқул бошад, метавонад бештар бошад ...

Пӯстҳои пешрафта

Gridzy бештар дарсҳои CSS-ро истифода мебарад, на танҳо gridzyItem . Аксарияти онҳо ба таври худкор насб карда мешаванд ва шумо метавонед онҳоро барои ороиш низ истифода баред.

Синфҳои асосии контейнерҳо

Номи синфТавсифи
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Ҳамин ки чизе дар шабака тағир ёфт, муқаррар карда мешавад, аммо худи ашё буд ва намоён боқӣ мемонад. Ҳамин ки аниматсияи тағирот ба охир мерасад, хориҷ карда мешавад.

Бо нобаёнӣ нишондиҳандаи раванд ва аниматсияҳо барои пайдо ва нопадидшавии тасвирҳо аз ҷониби файли асосии CSS Gridzy пешакӣ муайян карда мешаванд.

Бо ин синфҳои дар боло зикршудаи CSS, шумо метавонед нишондиҳандаи раванд ва аниматсияҳои худро услуб кунед. Ҷуръат кунед, ки ба файли асосии CSS Gridzy назар кунед, то бифаҳмед, ки шумо чиро бояд бекор кунед. Тарс нест, дар он ҷо ҳама чиз хуб ҳуҷҷатгузорӣ шудааст.

Оптимизатсияи боркунӣ

Агар шумо тасвирҳои зиёдро истифода баред, он метавонад фикри хубе бошад, ки ба Gridzy дар сохтани шабака зудтар кӯмак кунад.

Пешгирии Ҷаҳиш Тасвирҳо

Gridzy барои ҳисоб кардани шабака комилан ба таносуби ҷанбаҳои ҳамаи тасвирҳо ниёз дорад. Ин далел боиси ҷаҳиши унсурҳо мегардад, агар баъзе тасвирҳо омода бошанд ва дигарон не. Чӣ қадаре ки тасвирҳо зиёд бошанд, ин таъсир метавонад ҳамон қадар озори бештар дошта бошад.

Барои пешгирии ин рафтор, танҳо атрибутҳои width ва height барои ҳама унсурҳои img муқаррар кунед. Барои ҳар як тасвири инфиродӣ арзишҳои дуруст муқаррар кардан муҳим аст, вагарна тасвирҳо таҳриф мешаванд. Арзишҳои дуруст паҳнои аслӣ ва баландии тасвири мувофиқ мебошанд:

<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 метавонад бе зарурати донистани андозаи воқеии тасвирҳо шабакаро фавран ҳисоб кунад.

Lazy Loading

Барои бор кардани танҳо тасвирҳое, ки дар равзанаи намоён ҳастанд, танҳо ин қадамҳоро иҷро кунед:

  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. Аввалан ба мо сохтори муқаррарии HTML-и Gridzy лозим аст ва номҳои синфро барои ҳама ашёи галерея муқаррар кунем, то мо онҳоро баъдан филтр кунем.

<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 печонида, онҳоро ба галереяи Gridzy бо гузоштани опсияи 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>

Тавре ки шумо мебинед, мо инчунин интихобкунандаи CSS-ро барои опсияи filterControls истифода мебарем. Контейнери div бо атрибути id танҳо барои осон кардани интихоби тугмаҳо тавассути он селектори CSS хизмат мекунад.

Ана тамом!

Агар шумо ҳалли JavaScript-ро афзалтар донед, API-ро санҷед.

API

Гарчанде ки Gridzy API-и худро дорад, аксари корҳоро бидуни он, танҳо бо истифода аз DOM анҷом додан мумкин аст. Gridzy онро пай мебарад ва шабакаро танзим мекунад. Аммо API-и хеле пурқувват низ вуҷуд дорад ...

Манипуляцияи DOM

Барои ҳама коркардҳои модели объекти ҳуҷҷат (DOM) ба мо аввал элементи контейнер лозим аст:

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

Иловаи тасвирҳо

Муҳим аст, ки пеш аз илова кардани он ба унсури контейнер, унсури нави кӯдакро пурра сохта ва пур кунед. Дар акси ҳол, Gridzy андозаҳои дурустро муайян карда наметавонад.

// create a new img element
var newImage = document.createElement('img');

// add src attribute (!! before you add it to the container element !!)
newImage.src = 'https://loremflickr.com/640/480';

// add it as last element to the container element
gridzyElement.appendChild(newImage);

// or as first element (or anywhere in between)
gridzyElement.insertBefore(newImage, gridzyElement.firstChild);

Тасвирҳоро нест кунед

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

Имконотҳоро тағир диҳед

// change the spaceBetween option to a specific value
gridzyElement.setAttribute('data-gridzy-spaceBetween', '10');

// change the layout option to a specific value
gridzyElement.setAttribute('data-gridzy-layout', 'waterfall');

// reset the spaceBetween option to its default value
gridzyElement.removeAttribute('data-gridzy-spaceBetween');

Маълумоти бештарро дар бораи коркарди DOM, шумо метавонед дар веб ҳуҷҷатҳои MDN пайдо кунед. Инчунин Муқаддима ба DOM мавҷуд аст.

API хусусӣ

Барои истифодаи API, ба мо аввал як мисоли Gridzy лозим аст, ки ба унсури контейнери Gridzy пайваст аст:

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

Опсияро гиред

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

Ҳама интихобҳоро гиред

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

Параметрҳоро танзим кунед

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

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

Филтрро татбиқ кунед

Татбиқи филтр танҳо гузоштани filter хосият аст, ки метавонад ягон интихобкунандаи дурусти CSS бошад:

// 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
Мушоҳидаи мутатсия
trueВақте ки онҳо дар DOM пайдо мешаванд, унсурҳои навро бо gridzy синфи ошкор мекунад ва онҳоро оғоз мекунад. (масалан, дар бораи истифодаи гузаришҳои саҳифа)

Танзими тавассути Gridzy.setDefaultOptions()
autoSyncChildListMutation
Мушоҳидаи мутатсия
trueМуайян мекунад, ки унсурҳои (тасвирҳои) иловашуда ё хориҷ карда шудаанд ва шабакаро ба таври худкор навсозӣ мекунанд.

Тавассути data-grizy- , new Gridzy() , setOptions() , Gridzy.setDefaultOptions() танзимшаванда
useOptionAttributestrueМуайян мекунад, ки оё атрибутҳои data-gridzy- умуман истифода мешаванд ё не. Агар ин false бошад, имконотро танҳо тавассути API хусусӣ танзим кардан мумкин аст.

Танзимшаванда тавассути new Gridzy() , setOptions() , Gridzy.setDefaultOptions()
autoSyncAttributesMutation
Мушоҳидаи мутатсия
trueТағироти атрибутҳои data-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();