Библиотека AOS (Animate on Scroll) предоставляет
простой и гибкий способ добавления анимаций при скролле страницы.
Основным инструментом управления является метод
AOS.init(), который отвечает за запуск
библиотеки и настройку её поведения.
Метод AOS.init() вызывается после загрузки DOM и
выполняет следующие функции:
data-aos.Простейший пример:
AOS.init();
В этом случае библиотека будет работать с настройками по умолчанию.
initМетод init принимает объект с конфигурацией. Основные
параметры:
offset – смещение в пикселях
относительно нижней границы окна, при котором начинается анимация.
offset: 120
По умолчанию 120. Чем больше значение, тем раньше
активируется анимация.
delay – задержка анимации в
миллисекундах.
delay: 200
Позволяет создавать эффекты последовательного появления элементов.
duration – длительность анимации в
миллисекундах.
duration: 800
Влияет на плавность и скорость анимации.
easing – функция плавности
анимации.
easing: 'ease-in-out'
Поддерживаются стандартные CSS-функции временной кривой, такие как
linear, ease-in, ease-out,
ease-in-out.
once – boolean, определяет, будет
ли анимация воспроизводиться только один раз или каждый раз при
прокрутке элемента в область видимости.
once: truemirror – boolean, позволяет
воспроизводить анимацию при скролле вверх.
mirror: falseanchorPlacement – позиция элемента
относительно окна для запуска анимации.
anchorPlacement: 'top-bottom'
Возможные значения: 'top-bottom',
'top-center', 'center-bottom',
'bottom-bottom' и другие.
Пример инициализации с полной конфигурацией:
AOS.init({
offset: 150,
delay: 100,
duration: 1000,
easing: 'ease-in-out',
once: true,
mirror: false,
anchorPlacement: 'top-center',
});
Метод init может вызываться повторно для обновления
элементов, добавленных в DOM после первоначальной загрузки. Это особенно
полезно при работе с динамическим контентом через JavaScript-фреймворки
или AJAX.
// После добавления нового контента
AOS.init({
duration: 1200,
});
В этом случае библиотека повторно сканирует DOM и применяет анимации к новым элементам.
Элементы, которые должны анимироваться, получают атрибут
data-aos. Например:
<div data-aos="fade-up" data-aos-delay="200" data-aos-duration="800">
Контент с анимацией
</div>
data-aos – тип анимации (fade,
fade-up, fade-down, slide-up,
zoom-in и т.д.).data-aos-delay – индивидуальная задержка для
элемента.data-aos-duration – индивидуальная длительность
анимации.Если значения delay и duration заданы через
init, они могут быть переопределены индивидуальными
атрибутами на элементе.
AOS.init() должен
выполняться после загрузки DOM, иначе элементы не будут найдены.offset
и once помогает оптимизировать работу.initAOS.refresh() – пересчитывает позиции
всех элементов и их анимации. Полезно при изменении размеров или
динамическом контенте.AOS.refreshHard() – более “жесткая”
пересборка, удаляет все предыдущие стили и повторно инициирует
библиотеку.Использование вместе с init обеспечивает гибкость
управления анимациями.
Метод AOS.init() является сердцем
библиотеки. Грамотная настройка его параметров позволяет создавать
сложные и плавные анимации при скролле, управлять их скоростью,
задержкой и повторением, а также интегрировать с динамическим контентом
без дополнительных костылей.