Атрибут data-scroll-target является мощным инструментом
для точного управления анимациями и поведением элементов при прокрутке
страницы с использованием библиотеки Locomotive Scroll.
Он позволяет задать цель, к которой будет привязан скролл-эффект,
независимо от фактического положения элемента в DOM.
По умолчанию Locomotive Scroll отслеживает положение элементов
относительно окна просмотра и выполняет анимации, когда элемент попадает
в зону видимости. Атрибут data-scroll-target изменяет эту
логику, позволяя:
Синтаксис прост:
Этот блок анимируется, когда #section-3 появляется в области видимости.
Здесь элемент с data-scroll будет отслеживать позицию
элемента с идентификатором #section-3, а не свою
собственную.
data-scroll-classКомбинируя data-scroll-target с
data-scroll-class, можно создавать сложные анимации и
эффекты прокрутки:
Контент, активирующийся при достижении блока #features
Основные возможности продукта
При достижении блока Часто необходимо запускать эффект немного раньше или позже
фактического попадания цели в видимую область. Для этого можно
использовать атрибут Значение может быть как положительным, так и отрицательным, что
позволяет гибко управлять моментом активации. Locomotive Scroll поддерживает множественные цели, если использовать
кастомный JavaScript для контроля поведения. Прямого атрибута для
нескольких целей нет, но можно создать комбинацию событий через API: Такой подход позволяет связывать один элемент с несколькими точками
триггера и динамически изменять его состояние. Представим схему: Элемент реагирует не на своё попадание в область видимости, а на
позицию блока #features к
active. Это
удобно для:
Смещение и оффсеты
data-scroll-offset:Привязка к нескольким целям
const scroll = new LocomotiveScroll({
el: document.querySelector('[data-scroll-container]'),
smooth: true
});
scroll.on('call', (func, way, obj) => {
if (obj.el.matches('#target-1, #target-2')) {
obj.el.classList.add('visible');
}
});Практические советы
data-scroll-class позволяет создавать плавные
эффекты.Совместимость
с другими атрибутами Locomotive Scroll
data-scroll-speed — можно ускорять или замедлять
анимацию элемента, сохраняя привязку к цели.data-scroll-repeat — при многократной активации
элемента эффект будет срабатывать каждый раз при попадании цели в
область видимости.data-scroll-delay — полезно для последовательного
запуска нескольких элементов, привязанных к одной цели.Визуализация работы
[viewport]
|
|------> Элемент с data-scroll
|
|------> #section-3 (data-scroll-target)#section-3. Это создаёт гибкий механизм
триггеров для анимаций и интерактивных эффектов.