Вступление #
Кастомизация поля "выбор количества", можно использовать по умолчанию класс .js-quantity-selector.
Установка #
Пример разметки и инициализации поля.
<input class="js-quantity-selector" type="number" min="0" max="100" step="25" />
// настройки элемента, все они описаны в разделе "Конфигурация".
const options = {
decInner: 'Minus',
incInner: 'Plus',
addClass: ['quantity-selector-A', 'quantity-selector-B'],
}
BasicQuantitySelector.init('.my-quantity-selector', options)
BasicQuantitySelector.init(document.querySelector('.my-quantity-selector'), options)
BasicQuantitySelector.init(document.querySelectorAll('.my-quantity-selector'), options)
// или
BasicQuantitySelector.init() // по умолчанию инициaлизирует элементы с классом .js-quantity-selector
Конфигурация #
Стандартные параметры, которые задаются с помощью обычных атрибутов.
| Название | Тип | Описание |
|---|---|---|
min |
number |
Минимальное число для выбора. |
max |
number |
Максимальное число для выбора. |
step |
number |
Шаговый интервал для изменения значения, принимает так же числа с плавающей запятой. |
data-selector-options #
В значении указываются параметры для гибкой настройки кастомизированного "выбор количества".
<input
class="js-quantity-selector"
data-selector-options='{
"decInner": "Minus",
"incInner": "Plus",
"addClass": ["quantity-selector-A", "quantity-selector-B"]
}'
type="number"
min="0"
max="100"
step="25"
/>
Параметры:
| Название | Тип | Описание |
|---|---|---|
decInner |
string |
Контент триггера "уменьшения"(decrement). |
incInner |
string |
Контент триггера "увеличения"(increment). |
addClass |
string/object |
Дополнительные классы для родительской обёртки(.quantity-selector). |
Методы #
value() #
Добавить новое значение в селектор.
BasicQuantitySelector.value({
el: document.querySelector('.my-quantity-selector'), // так же принимает строковое значение
value: 100,
})
Где в конфигурациях указывается:
| Название | Тип | Описание |
|---|---|---|
selector |
string/object |
Селектор, которому необходимо добавить значение, по умолчанию .js-quantity-selector. |
value |
number |
Принимает значение в виде числа и которое необходимо добавить в селектор. |
clear() #
Очистить селектор от значения.
// так же принимает строковое значение
BasicQuantitySelector.clear(document.querySelector('.my-quantity-selector'))
Прослушивание событий #
Можно прослушать события элемента и получить необходимые параметры.
quantitySelector:change #
Срабатывает при изменении значения поля.
Параметры:
| Название | Тип | Описание |
|---|---|---|
event.detail.element |
object |
Элемент, на котором сработало событие. |
event.detail.value |
number |
Эначение элемента. |
event.detail.step |
number |
Шаговый интервал для изменения значения. |
event.detail.min |
number |
Минимальное число для выбора. |
event.detail.max |
number |
Максимальное число для выбора. |
document.querySelector('.my-quantity-selector').addEventListener(
'quantitySelector:change',
function () {
console.log(event.detail) // параметры
},
false,
)