data-scroll-direction

Библиотека Locomotive Scroll обеспечивает плавный скроллинг и расширенные возможности управления анимациями на основе позиции прокрутки. Одним из ключевых инструментов для управления направлением скролла является атрибут data-scroll-direction, который позволяет явно задавать направление отслеживания элементов при прокрутке.


Возможные значения

Атрибут data-scroll-direction принимает два основных значения:

  • vertical – стандартное вертикальное направление скролла. При этом элементы анимации и наблюдения перемещаются по оси Y, что является привычным для большинства веб-страниц.

  • horizontal – горизонтальное направление скролла. В этом случае прокрутка отслеживается по оси X, а любые анимации, связанные с data-scroll, будут реагировать на горизонтальное перемещение контента.

Пример использования:

<div data-scroll-container data-scroll-direction="horizontal">
  <section data-scroll data-scroll-speed="2">
    Горизонтальный скролл
  </section>
  <section data-scroll data-scroll-speed="1">
    Еще один блок
  </section>
</div>

В этом примере контейнер data-scroll-container задает горизонтальную прокрутку, а блоки внутри него с data-scroll будут реагировать на движение по горизонтали.


Взаимодействие с другими атрибутами

  • data-scroll-speed – управление скоростью движения элементов относительно основной прокрутки. При горизонтальном скролле скорость интерпретируется аналогично, но движение происходит вдоль оси X.

  • data-scroll-sticky – фиксация элемента относительно контейнера. Направление sticky также подчиняется data-scroll-direction. Если контейнер горизонтальный, элемент будет «прилипать» в горизонтальной плоскости.

  • data-scroll-target – привязка анимаций к конкретному элементу. В случае горизонтального скролла координаты и вычисления target происходят по оси X.


Особенности работы

  1. Контейнер прокрутки должен иметь заданный размер вдоль основной оси скролла. Для горизонтальной прокрутки это ширина контейнера. Без явного размера scroll не будет работать корректно.

  2. Совместимость с CSS: Горизонтальный скролл требует дополнительного стиля:

    [data-scroll-container] {
      display: flex;
      flex-wrap: nowrap;
      overflow-x: auto;
      scroll-behavior: smooth;
    }
    section {
      min-width: 100vw;
    }
  3. События и методы библиотеки: Методы scroll.scrollTo() и события scroll автоматически учитывают направление, заданное в data-scroll-direction. Это позволяет вызывать прокрутку до элементов как по вертикали, так и по горизонтали.


Практические рекомендации

  • Для стандартных страниц лучше оставлять значение vertical, чтобы не ломать привычное поведение скролла.
  • Горизонтальный скролл стоит использовать для слайдеров, галерей и визуальных презентаций.
  • Комбинирование вертикального и горизонтального скролла на одной странице требует отдельного контейнера для каждого направления с data-scroll-container.
  • Всегда проверять корректность размеров контейнеров: горизонтальный скролл может вести себя некорректно при недостаточной ширине дочерних элементов.

Отладка

При проблемах с отслеживанием скролла:

  1. Проверить наличие data-scroll-container.
  2. Убедиться, что CSS корректно задает размеры контейнера по оси скролла.
  3. Проверить значения data-scroll-direction у родителя и дочерних элементов.
  4. Использовать метод scroll.update() после динамического изменения содержимого контейнера.

Заключение по использованию

Атрибут data-scroll-direction предоставляет мощный инструмент для управления направлением скролла в Locomotive Scroll, влияя на поведение всех дочерних элементов и событий библиотеки. Правильное понимание взаимодействия с другими атрибутами и стилями позволяет создавать как традиционные вертикальные страницы, так и сложные горизонтальные интерфейсы с плавными анимациями и эффектами параллакса.