В библиотеке AOS (Animate on Scroll) точка срабатывания определяет момент, когда элемент начинает анимацию при прокрутке страницы. Понимание этой концепции критично для точного контроля визуальных эффектов и создания динамичного интерфейса.
По умолчанию библиотека отслеживает положение элемента относительно
окна браузера и запускает анимацию, когда элемент пересекает заданный
порог видимости. Этот порог настраивается через параметр
offset, который задаёт смещение в пикселях от верхней
границы окна.
AOS.init({
offset: 120, // элемент начнет анимацию за 120px до появления в viewport
});
offset)offset — это расстояние от верхней границы окна браузера до верхней границы элемента, при котором срабатывает анимация. Положительные значения смещают момент запуска вверх, отрицательные — вниз.
offset: 0 — анимация начинается, когда верхняя граница
элемента достигает верхней границы viewport.offset: 200 — элемент начинает анимироваться до того,
как полностью появится на экране.offset: -50 — анимация запускается позже, когда элемент
уже частично видим.Точное использование offset позволяет создавать эффект
постепенного появления элементов по мере прокрутки страницы и улучшает
визуальное восприятие интерфейса.
anchorPlacementПараметр anchorPlacement задаёт точку отсчёта для запуска анимации относительно элемента и viewport. Возможные значения:
top-bottom — верх элемента достигает нижней границы
окна (по умолчанию).top-center — верх элемента достигает центра окна.center-bottom — центр элемента достигает нижней границы
окна.bottom-top — нижняя граница элемента достигает верхней
границы окна.Пример настройки:
AOS.init({
offset: 100,
anchorPlacement: 'top-center'
});
Такой подход позволяет точно синхронизировать момент запуска анимации с прокруткой, обеспечивая плавные эффекты на странице.
Высота элемента напрямую влияет на момент срабатывания, особенно при
использовании разных значений anchorPlacement. Для высоких
блоков анимация может начинаться раньше или позже, в зависимости от
выбранной точки привязки. Для корректной анимации больших элементов
рекомендуется комбинировать offset и
anchorPlacement, чтобы обеспечить естественный визуальный
поток.
AOS.init({
offset: 150,
anchorPlacement: 'center-bottom'
});
В некоторых случаях нужно запускать разные анимации на одном и том же элементе в разные моменты прокрутки. AOS не поддерживает множественные offset на одном элементе напрямую, но это можно реализовать через добавление вспомогательных контейнеров:
<div class="aos-wrapper">
<div data-aos="fade-up" data-aos-offset="100">Первый эффект</div>
<div data-aos="fade-right" data-aos-offset="300">Второй эффект</div>
</div>
Каждый дочерний элемент имеет собственное смещение и точку срабатывания, что позволяет создавать сложные анимационные последовательности.
При проектировании точек срабатывания необходимо учитывать высоту
viewport на разных устройствах. На мобильных экранах с меньшей высотой
элементы могут срабатывать раньше, чем ожидалось, если используются
большие значения offset. Для адаптивности рекомендуется
использовать медиазапросы и динамическую инициализацию AOS:
if (window.innerWidth > 768) {
AOS.init({ offset: 200 });
} else {
AOS.init({ offset: 100 });
}
center-bottom для естественного визуального эффекта.Использование этих рекомендаций помогает создавать интерфейсы, где анимации появляются синхронно с прокруткой и поддерживают плавность восприятия.
Эти механизмы дают полный контроль над тем, когда и как элементы начинают анимацию, что позволяет строить сложные и привлекательные интерфейсы без нарушения пользовательского опыта.