Вступление #

Слайдер с гибкими настройками. Логика слайдера реализована на базе splide.js.

Для работы можно использовать по умолчанию класс .js-slider и специальную разметку.

Установка #

Пример разметки и инициализации слайдера.

    <div class="js-slider">
        <div class="splide__track">
            <div class="splide__list">
                <div class="splide__slide"><img src="../assets/images/demo/1.jpg"/></div>
                <div class="splide__slide"><img src="../assets/images/demo/2.jpg"/></div>
                <div class="splide__slide"><img src="../assets/images/demo/3.jpg"/></div>
            </div>
        </div>
    </div>
    BasicSlider.init('.my-slider');
    BasicSlider.init(document.querySelector('.my-slider'));
    BasicSlider.init(document.querySelectorAll('.my-slider'));

    // или

    BasicSlider.init(); // по умолчанию инициaлизирует элементы с классом .js-slider

Конфигурация #

Настройки, которые указываются при помощи специальных data-атрибутов.

data-slider-options #

В значение указываются параметры для гибкой настройки слайдера, с ними можно ознакомиться на странице офиц.документации.

<div class="js-slider" data-slider-options='{ "type": "fade", "trimSpace": false, "arrows": false, "pagination": false }'>
    <div class="splide__track">
        <div class="splide__list">
            <div class="splide__slide"><img src="../assets/images/demo/1.jpg"/></div>
            <div class="splide__slide"><img src="../assets/images/demo/2.jpg"/></div>
            <div class="splide__slide"><img src="../assets/images/demo/3.jpg"/></div>
            <div class="splide__slide"><img src="../assets/images/demo/4.jpg"/></div>
            <div class="splide__slide"><img src="../assets/images/demo/5.jpg"/></div>
        </div>
    </div>
</div>

data-slider-padding #

Отдельный data-атрибут для padding.

Принимает след.значения:

Название Описание
top padding-top
left padding-left
right padding-right
bottom padding-bottom
    <div class="js-slider" data-slider-padding='{"top": "0px", "left": "50px", "right": "50px", "bottom": "0px"}'>
        <div class="splide__track">
            <div class="splide__list">
                <div class="splide__slide"><img src="../assets/images/demo/1.jpg"/></div>
                <div class="splide__slide"><img src="../assets/images/demo/2.jpg"/></div>
                <div class="splide__slide"><img src="../assets/images/demo/3.jpg"/></div>
            </div>
        </div>
    </div>

data-slider-breakpoints #

Отдельный data-атрибут для адаптивного режима(breakpoints).

    <div class="js-slider" data-slider-breakpoints='{ "768": {"arrows": false}, "480": {"arrows": false, "gap": "20px", "padding": {"left": "50px", "right": "50px"}} }'>
        <div class="splide__track">
            <div class="splide__list">
                <div class="splide__slide"><img src="../assets/images/demo/1.jpg"/></div>
                <div class="splide__slide"><img src="../assets/images/demo/2.jpg"/></div>
                <div class="splide__slide"><img src="../assets/images/demo/3.jpg"/></div>
            </div>
        </div>
    </div>

data-slider-mounted-callback #

data-атрибут, который отвечает за callback, вызывается после инициализации слайдера

    <div class="js-slider" data-slider-mounted-callback="console.log('Это скрипт запустится, когда будет инициализирован слайдер')">
        <div class="splide__track">
            <div class="splide__list">
                <div class="splide__slide"><img src="../assets/images/demo/1.jpg"/></div>
                <div class="splide__slide"><img src="../assets/images/demo/2.jpg"/></div>
                <div class="splide__slide"><img src="../assets/images/demo/3.jpg"/></div>
            </div>
        </div>
    </div>

Слайдер с миниатюрами #

Для инициализации и настройки миниатюр, необходимо использовать специальные data-атрибуты.

data-slider-thumbs #

data-атрибут для инициализации миниатюр.

<div class="js-slider" data-slider-thumbs="true">
    <div class="splide__track">
        <div class="splide__list">
            <div class="splide__slide" data-slider-thumb="../assets/images/demo/1.jpg"><img src="../assets/images/demo/1.jpg"/></div>
            <div class="splide__slide" data-slider-thumb="../assets/images/demo/2.jpg"><img src="../assets/images/demo/2.jpg"/></div>
            <div class="splide__slide" data-slider-thumb="../assets/images/demo/3.jpg"><img src="../assets/images/demo/3.jpg"/></div>
            <div class="splide__slide" data-slider-thumb="../assets/images/demo/4.jpg"><img src="../assets/images/demo/4.jpg"/></div>
            <div class="splide__slide" data-slider-thumb="../assets/images/demo/5.jpg"><img src="../assets/images/demo/5.jpg"/></div>
        </div>
    </div>
</div>

data-thumbs-options #

В значениях указываются параметры для гибкой настройки миниатюр.
С ними можно ознакомиться на странице офиц.документации.

    <div class="js-slider" data-slider-thumbs="true" data-thumbs-options='{ "arrows": true, "breakpoints": { "480": {"arrows": false} } }'>
        <div class="splide__track">
            <div class="splide__list">
                <div class="splide__slide" data-slider-thumb="../assets/images/demo/1.jpg"><img src="../assets/images/demo/1.jpg"/></div>
                <div class="splide__slide" data-slider-thumb="../assets/images/demo/2.jpg"><img src="../assets/images/demo/2.jpg"/></div>
                <div class="splide__slide" data-slider-thumb="../assets/images/demo/3.jpg"><img src="../assets/images/demo/3.jpg"/></div>
                <div class="splide__slide" data-slider-thumb="../assets/images/demo/4.jpg"><img src="../assets/images/demo/4.jpg"/></div>
                <div class="splide__slide" data-slider-thumb="../assets/images/demo/5.jpg"><img src="../assets/images/demo/5.jpg"/></div>
            </div>
        </div>
    </div>

Прослушивание событий #

Прослушивания событий реализовано на базе Splide#on().

    BasicSlider.on('.my-slider', {
        event: 'active', // событие
        listener: () => {
            // слушатель события
        }
    });

Список событий, которые реализованы на данный момент.