Вступление #
Для кастомизация ползунка, можно использовать по умолчанию класс .js-range-slider
.
Логика ползунка реализована на базе noUiSlider.
Установка #
Пример разметки и инициализации кастомизированного ползунка.
<input
class="js-range-slider"
type="range"
min="0"
max="100"
step="10"
data-range-id="my-range"
data-range-options='{
"connect": "lower",
"start": 50,
"pips": { "mode": "steps", "stepped": true, "density": 4 }
}'
/>
BasicRangeSlider.init('.my-range-slider');
BasicRangeSlider.init(document.querySelector('.my-range-slider'));
BasicRangeSlider.init(document.querySelectorAll('.my-range-slider'));
BasicRangeSlider.init('.my-range-slider', {
"connect": "lower",
"start": 50,
"pips": { "mode": "steps", "stepped": true, "density": 4 }
});
// или
BasicRangeSlider.init(); // по умолчанию инициaлизирует элементы с классом .js-range-slider
Конфигурация #
Настройки, которые указываются при помощи специальных data-атрибутов.
data-range-options #
В значениях указываются параметры для гибкой настройки ползунка. С ними можно ознакомиться на странице офиц.документации.
<input
class="js-range-slider"
type="range"
data-range-options='{
"connect": true,
"start": [0, 80],
"pips": { "mode": "steps", "stepped": true, "density": 4 }
}'
/>
data-range-id #
В значениях можно указать id
для кастомизированного ползунка.
<input
class="js-range-slider"
data-range-id="my-range"
/>
min
, max
, step
#
Стандартные параметры, которые указывается при помощи обычных атрибутов.
<input
class="js-range-slider"
min="0"
max="100"
step="10"
data-range-options='{
"connect": true,
"start": [0, 80],
"pips": { "mode": "steps", "stepped": true, "density": 4 }
}'
/>
Название | Тип | Описание |
---|---|---|
min |
number |
Минимальное значение для ползунка. |
max |
number |
Максимальное значение для ползунка. |
step |
number |
Шаг для изменения значения ползунка. |
Прослушивание событий #
Прослушивания событий реализовано на базе noUiSlider.on.
BasicRangeSlider.on('#custom-range-slider', {
event: 'change',
listener: (values, handle, unencoded, tap, positions, noUiSlider) => {
console.log(values);
}
})
Чтобы удалить событие, можно воспользоваться методом BasicRangeSlider.off()
.
BasicRangeSlider.off('#custom-range-slider', 'change');
BasicRangeSlider.off('#custom-range-slider'); // удалит все привязанные события.