Lock — блокировка слайдера
Когда весь контент помещается в видимую область и листать некуда, слайдер автоматически переходит в состояние lock: отключаются стрелки, не срабатывает перетаскивание, на корневой элемент вешается класс tvist-v1--locked. В режиме loop: true блокировка не применяется.
Lock — блокировка слайдера
Когда контент помещается в контейнер и листать некуда, слайдер переходит в состояние lock: стрелки отключаются, drag не срабатывает, на root вешается класс tvist-v1--locked
Заблокирован (perPage: 2, 2 слайда, без loop)
Весь контент виден, листать некуда → слайдер заблокирован.
Разблокирован (perPage: 2, 6 слайдов, без loop)
Контент не помещается → слайдер активен, стрелки и drag работают.
Когда срабатывает lock
- Слайдов не больше, чем
perPage(например, perPage: 2 и 2 слайда). - Или контент по размеру не больше контейнера, и границы скролла не позволяют никуда сдвинуться.
В этих случаях вызывается checkLock(), слайдер помечается как заблокированный, эмитятся события lock / unlock.
Поведение
| Состояние | Класс на root | События | Навигация / drag |
|---|---|---|---|
| Заблокирован | tvist-v1--locked | lock | Стрелки disabled, drag не стартует |
| Разблокирован | — | unlock | Работают как обычно |
Полный список классов состояний на root (--created, --destroyed, --locked) см. в Свойства → root.
Проверка состояния
- Свойство:
slider.engine.isLocked—true/false. - События: в опциях
on.lockиon.unlock.
Пример кода
const slider = new Tvist('.tvist', {
perPage: 2,
gap: 16,
loop: false,
drag: true,
on: {
lock: () => console.log('Слайдер заблокирован'),
unlock: () => console.log('Слайдер разблокирован')
}
})
// Текущее состояние
console.log(slider.engine.isLocked)