Skip to content

Lock — блокировка слайдера

Когда весь контент помещается в видимую область и листать некуда, слайдер автоматически переходит в состояние lock: отключаются стрелки, не срабатывает перетаскивание, на корневой элемент вешается класс tvist-v1--locked. В режиме loop: true блокировка не применяется.

Lock — блокировка слайдера

Когда контент помещается в контейнер и листать некуда, слайдер переходит в состояние lock: стрелки отключаются, drag не срабатывает, на root вешается класс tvist-v1--locked

Заблокирован (perPage: 2, 2 слайда, без loop)

Весь контент виден, листать некуда → слайдер заблокирован.

1
2
Разблокирован

Разблокирован (perPage: 2, 6 слайдов, без loop)

Контент не помещается → слайдер активен, стрелки и drag работают.

1
2
3
4
5
6
Разблокирован

Когда срабатывает lock

  • Слайдов не больше, чем perPage (например, perPage: 2 и 2 слайда).
  • Или контент по размеру не больше контейнера, и границы скролла не позволяют никуда сдвинуться.

В этих случаях вызывается checkLock(), слайдер помечается как заблокированный, эмитятся события lock / unlock.

Поведение

СостояниеКласс на rootСобытияНавигация / drag
Заблокированtvist-v1--lockedlockСтрелки disabled, drag не стартует
РазблокированunlockРаботают как обычно

Полный список классов состояний на root (--created, --destroyed, --locked) см. в Свойства → root.

Проверка состояния

  • Свойство: slider.engine.isLockedtrue / false.
  • События: в опциях on.lock и on.unlock.

Пример кода

javascript
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)

Связанные примеры

  • PerPage — количество видимых слайдов
  • Loop — при loop: true lock не используется