Библиотека AOS (Animate on Scroll) предоставляет гибкие средства управления анимацией элементов при прокрутке страницы. Одним из ключевых аспектов настройки является время анимации и задержки её запуска. В AOS временные параметры можно настраивать как на уровне отдельных элементов, так и глобально для всей страницы. Глобальные настройки позволяют задать стандартное поведение анимаций без необходимости повторного указания параметров для каждого элемента.
Для работы с глобальными настройками времени используется объект
конфигурации при вызове функции AOS.init(). Основные
параметры, влияющие на продолжительность и задержку анимации:
AOS.init({
duration: 1200, // Продолжительность анимации в миллисекундах
delay: 100, // Задержка перед запуском анимации в миллисекундах
easing: 'ease-in-out', // Функция ускорения анимации
once: true // Анимация воспроизводится только один раз
});
duration — ключевой параметр,
определяющий, сколько времени будет выполняться анимация элемента.
Значение задается в миллисекундах. Например, duration: 1500
означает, что анимация продлится 1.5 секунды. Этот параметр применяется
ко всем элементам, если для конкретного элемента не задана собственная
продолжительность через атрибут data-aos-duration.delay — устанавливает задержку перед
началом анимации после появления элемента в зоне видимости. Может
использоваться для создания эффектов последовательного появления
нескольких блоков.easing — определяет кривую ускорения
анимации. AOS поддерживает стандартные CSS-функции ease,
ease-in, ease-out, ease-in-out, а
также линейное linear. Правильный выбор easing позволяет
добиться более естественного движения элементов.once — параметр, который управляет
повторным воспроизведением анимации при скролле. Значение
true гарантирует, что анимация будет выполнена один раз, а
false — каждый раз при попадании элемента в зону
видимости.Хотя глобальные параметры задают стандартное поведение, их можно переопределять для отдельных элементов с помощью атрибутов:
data-aos-duration="2000" — индивидуальная
продолжительность анимации конкретного элемента.data-aos-delay="300" — индивидуальная задержка для
элемента.data-aos-easing="ease-out" — локальная кривая ускорения
для выбранного блока.Если атрибут не указан, элемент наследует глобальные настройки из
AOS.init(). Это позволяет создавать унифицированный
стиль анимации на странице, сохраняя при этом возможность
гибкой кастомизации отдельных блоков.
Для создания эффектов цепочки появления элементов
можно использовать комбинацию глобального параметра delay и
локальных значений data-aos-delay. Например:
Элемент 1
Элемент 2
Элемент 3
В этом примере элементы будут появляться один за другим с шагом 200
мс. Глобальный параметр duration определяет время самой
анимации, а локальный data-aos-delay — задержку для каждого
элемента.
AOS позволяет менять временные параметры после
инициализации. Для этого используется метод
refresh():
AOS.init({
duration: 800,
delay: 50
});
// Через 3 секунды увеличиваем продолжительность анимации
setTimeout(() => {
AOS.init({
duration: 1500,
delay: 100
});
AOS.refresh();
}, 3000);
Метод refresh() обновляет внутренние данные AOS о
расположении элементов и их анимации, что особенно важно, если структура
DOM меняется динамически.
duration и
delay могут визуально замедлять интерфейс,
особенно на страницах с большим количеством анимированных
элементов.| Параметр | Тип | Описание |
|---|---|---|
duration |
number | Время выполнения анимации в миллисекундах |
delay |
number | Задержка перед началом анимации в миллисекундах |
easing |
string | Функция ускорения (ease, ease-in, ease-out, ease-in-out, linear) |
once |
boolean | Выполнять анимацию один раз (true) или при каждом
появлении (false) |
mirror |
boolean | Анимация повторяется при скролле вверх (true) |
Эти параметры являются ядром контроля времени анимации в AOS и позволяют выстраивать сложные визуальные сценарии без необходимости писать дополнительные скрипты.