Библиотека Locomotive Scroll предоставляет возможность реализовать плавную и управляемую прокрутку на веб-странице, включая поддержку горизонтального и вертикального направления. Управление направлением прокрутки является ключевым для создания нестандартных эффектов анимации и интерактивного дизайна.
Направление прокрутки задаётся через опцию direction при
инициализации экземпляра Locomotive Scroll:
const scroll = new LocomotiveScroll({
el: document.querySelector('[data-scroll-container]'),
smooth: true,
direction: 'vertical' // или 'horizontal'
});
Важно учитывать, что при горизонтальной прокрутке следует правильно настроить контейнер и элементы внутри него, чтобы они выстраивались в одну линию по оси X.
Вертикальная прокрутка является стандартной конфигурацией и идеально
подходит для большинства сайтов. Она поддерживает плавность, инерцию и
эффект параллакса для элементов с атрибутами data-scroll и
data-scroll-speed. Например:
<div data-scroll data-scroll-speed="2">
Этот блок будет прокручиваться быстрее основного контента.
</div>
Горизонтальная прокрутка используется для нестандартных макетов, галерей или слайдеров. Для корректной работы важно:
display: flex или inline-block.direction: 'horizontal'.Пример структуры:
<div data-scroll-container style="display: flex; width: 300vw;">
<section data-scroll>Секция 1</section>
<section data-scroll>Секция 2</section>
<section data-scroll>Секция 3</section>
</div>
При горизонтальной прокрутке также можно применять data-scroll-speed, чтобы элементы смещались с разной скоростью, создавая параллакс-эффект.
В некоторых проектах требуется менять направление прокрутки в зависимости от устройства или ширины экрана. Это можно реализовать через условную инициализацию:
const isMobile = window.innerWidth < 768;
const scroll = new LocomotiveScroll({
el: document.querySelector('[data-scroll-container]'),
smooth: true,
direction: isMobile ? 'vertical' : 'horizontal'
});
Такой подход позволяет, например, на мобильных устройствах использовать вертикальную прокрутку для удобства, а на десктопе — горизонтальную для визуально эффектного представления контента.
Направление прокрутки влияет на методы и события Locomotive Scroll:
scroll.scroll.instance.scroll.y — вертикальная позиция
прокрутки.scroll.scroll.instance.scroll.x — горизонтальная
позиция прокрутки.В обработчиках событий необходимо учитывать текущее направление:
scroll.on('scroll', (obj) => {
if (scroll.direction === 'horizontal') {
console.log(obj.scroll.x);
} else {
console.log(obj.scroll.y);
}
});
data-scroll-speed следует использовать
умеренно: слишком большое значение может привести к резким рывкам.overflow, чтобы не возникали баги с прокруткой.Направление прокрутки влияет на работу параллакса, скейлинга и анимаций:
<div data-scroll data-scroll-speed="1.5" data-scroll-direction="horizontal">
Этот блок движется по горизонтали быстрее основного контента.
</div>
При этом можно комбинировать data-scroll-direction с
основным direction, создавая эффект смещения элементов
независимо от глобального направления прокрутки.
Опция direction является фундаментальной для управления
прокруткой в Locomotive Scroll. Корректная настройка позволяет создавать
как традиционные вертикальные сайты, так и интерактивные горизонтальные
галереи с плавной анимацией и параллаксом. Понимание взаимодействия
направления с атрибутами элементов и событиями прокрутки критично для
реализации сложных интерфейсов.