Атрибут data-scroll-offset позволяет управлять точкой
срабатывания анимаций и эффектов при скролле. В Locomotive Scroll он
задаёт смещение элемента относительно начала или конца
окна, при котором активируется привязанный к элементу
скролл-триггер. Это особенно полезно для создания сложных анимаций с
точной синхронизацией и последовательным появлением контента.
data-scroll-offsetАтрибут поддерживает несколько форматов:
<div data-scroll data-scroll-offset="25%">
Контент
</div>
25% означает, что эффект начнётся, когда
верхняя граница элемента окажется на 25% высоты видимой области
браузера.<div data-scroll data-scroll-offset="100">
Контент
</div>
<div data-scroll data-scroll-offset="-50">
Контент
</div>
<div data-scroll data-scroll-offset="10%,90%">
Контент
</div>
data-scroll-class и data-scroll-repeatdata-scroll-offset часто используется совместно с
data-scroll-class, который добавляет CSS-класс элементу при
достижении заданного смещения. Пример:
<div data-scroll data-scroll-class="visible" data-scroll-offset="30%">
Появляющийся контент
</div>
visible будет добавлен, когда элемент окажется на
30% высоты окна.data-scroll-repeat="true", класс может
убираться и добавляться повторно при повторном скролле, что позволяет
создавать циклические эффекты.Относительно начала окна Locomotive Scroll
измеряет data-scroll-offset от верхней границы окна по
умолчанию. Для вертикального скролла это верх страницы, для
горизонтального — левая граница контейнера.
Комбинация с data-scroll-delay Для
плавного появления элементов можно комбинировать смещение с задержкой
анимации:
<div data-scroll data-scroll-offset="50%" data-scroll-delay="0.3">
Контент с задержкой
</div>
data-scroll-delay задаёт секунды до
срабатывания эффекта после достижения смещения.position: sticky корректно учитываются Locomotive Scroll,
но смещение следует задавать исходя из видимой позиции элемента
в окне, так как его положение меняется динамически.<section>
<div data-scroll data-scroll-offset="10%">Блок 1</div>
<div data-scroll data-scroll-offset="20%">Блок 2</div>
<div data-scroll data-scroll-offset="30%">Блок 3</div>
</section>
[data-scroll].active {
opacity: 1;
transform: translateY(0);
transition: all 0.6s ease-out;
}
[data-scroll] {
opacity: 0;
transform: translateY(50px);
}
<div data-scroll data-scroll-class="active" data-scroll-offset="40%">
Появление с анимацией
</div>
data-scroll-offset определяет момент запуска анимации,
обеспечивая точное позиционирование визуального эффекта.<div data-scroll data-scroll-offset="20%,80%" data-scroll-class="in-view">
Контент с разным смещением для входа и выхода
</div>
in-view при входе на 20% высоты
окна и потеряет его при выходе на 80%, что позволяет
контролировать появление и исчезновение независимо друг
от друга.data-scroll-repeat, можно создавать
интерактивные эффекты при многократном скролле,
например для лендингов с повторяющимися анимациями блоков.data-scroll-offset является мощным инструментом для
управления точкой срабатывания скролл-событий, позволяя создавать
точные, адаптивные и последовательные анимации без
необходимости писать сложные скрипты для расчёта положения
элементов.