Слайдеры
Для слайдера в манифесте блока подключите расширение landing_carousel.
Как настроить слайдер
Минимальный вариант:
'assets' => [
'ext' => ['landing_carousel'],
],
<div class="js-carousel">
<div class="js-slide">Slide 1</div>
<div class="js-slide">Slide 2</div>
</div>
Что делает расширение slider
Расширение landing_carousel инициализирует слайдер для контейнера js-carousel и обрабатывает атрибуты data-*, управляющие отображением, навигацией и автопрокруткой.
Разметка
В разметке используются два служебных класса:
js-carousel— корневой контейнер слайдераjs-slide— отдельный слайд
По умолчанию слайдер показывает один слайд, без стрелок, пагинации и автопрокрутки. Поведение настраивается через data-* атрибуты на элементе js-carousel.
Основные атрибуты
data-arrows-classes— классы для обеих стрелокdata-arrow-left-classes— классы для левой стрелкиdata-arrow-right-classes— классы для правой стрелкиdata-pagi-classes— классы для блока пагинацииdata-slides-show— количество слайдов на экранеdata-slides-scroll— количество слайдов за один шагdata-autoplay— включение/выключение автопрокруткиdata-speed— скорость автопрокрутки в миллисекундахdata-pause-hover— остановка автопрокрутки при наведенииdata-fade— эффект смены слайдов через прозрачность, корректно работает приdata-slides-show="1"data-vertical— вертикальный режим слайдераdata-rows— количество строкdata-infinite— зацикливаниеdata-responsive— адаптивные правила по брейкпоинтамdata-center-mode— центрирование активного слайдаdata-center-padding— отступы по краям в режиме center modedata-variable-width— слайды переменной шириныdata-initial-slide— начальный слайд при загрузкеdata-rtl— направление отображения справа налевоdata-adaptive-height— адаптивная высота контейнера по текущему слайдуdata-lazy-load— режим ленивой загрузки изображенийdata-nav-for— связь с другим слайдером, например, слайдер превьюdata-is-thumbs— режим слайдера-превью
Для data-responsive передается валидный JSON-массив правил. У каждого правила есть:
breakpoint— ширина экрана в пикселяхsettings— настройки для данного брейкпоинта
В settings используются имена параметров Slick, а не data-* атрибутов:
arrows— показать или скрыть стрелкиprevArrow— HTML/селектор левой стрелкиnextArrow— HTML/селектор правой стрелкиdots— включить или выключить пагинациюdotsClass— CSS-класс контейнера пагинацииslidesToShow— количество слайдов на экранеslidesToScroll— количество слайдов за один шагautoplay— включить или выключить автопрокруткуautoplaySpeed— интервал автопрокрутки в миллисекундахpauseOnHover— останавливать автопрокрутку при наведенииfade— режим смены слайдов через затуханиеvertical— вертикальный режим слайдера
Пример
<div class="js-carousel"
data-arrows-classes="u-arrow-v1 g-absolute-centered--y g-width-45 g-height-45 g-color-white g-bg-primary"
data-arrow-left-classes="fa fa-chevron-left g-left-0"
data-arrow-right-classes="fa fa-chevron-right g-right-0"
data-pagi-classes="u-carousel-indicators-v1 g-absolute-centered--x g-bottom-60 text-center"
data-slides-show="3"
data-slides-scroll="2"
data-autoplay="true"
data-speed="1000"
data-pause-hover="true"
data-center-mode="true"
data-center-padding="40px"
data-initial-slide="1"
data-adaptive-height="true"
data-lazy-load="ondemand"
data-responsive='[
{
"breakpoint": 768,
"settings": {
"slidesToShow": 2
}
},
{
"breakpoint": 576,
"settings": {
"slidesToShow": 1
}
}
]'>
<div class="js-slide g-height-50vh g-brd-gray-light-v3 g-brd-around g-bg-primary-opacity-0_1">
<div class="g-flex-centered w-100 h-100">
<h3>Slide 1</h3>
</div>
</div>
<div class="js-slide g-height-50vh g-brd-gray-light-v3 g-brd-around g-bg-primary-opacity-0_1">
<div class="g-flex-centered w-100 h-100">
<h3>Slide 2</h3>
</div>
</div>
</div>
Совмещение с галереей
Если слайдер используется вместе с галереей, подключайте расширения в порядке:
landing_carousellanding_gallery_cards
'assets' => [
'ext' => ['landing_carousel', 'landing_gallery_cards'],
],
Примеры штатных блоков
Примеры блоков этого типа можно посмотреть в репозитории через методы landing.block.getmanifestfile и landing.block.getrepository.
Коды некоторых штатных блоков:
01.big_with_text01.big_with_text_blocks28.5.team_4_cols_slider39.1.five_blocks_carousel45.2.gallery_app_with_slider— с галереей
Что важно учитывать
data-fadeкорректно работает приdata-slides-show="1"- в режиме
data-rowsпараметрыdata-slides-showиdata-slides-scrollработают как число колонок - для вертикального режима
data-verticalобычно отдельно настраивают стрелки/пагинацию - при включенном
data-verticalодновременно включаетсяverticalSwiping, поэтому на мобильных обычно настраивают отключение вертикального режима черезdata-responsive - для отображения пагинации кроме настроек dots нужно задать
data-pagi-classes data-infiniteработает в режиме предпросмотра и публикации; в редакторе зацикливание принудительно отключается- при совмещении со встроенной галереей сначала подключается
landing_carousel, затемlanding_gallery_cards