Библиотека AOS (Animate on Scroll) позволяет анимировать элементы при
их появлении в области видимости. Помимо глобальных настроек, AOS
предоставляет возможность задавать индивидуальные параметры для каждого
элемента через атрибуты data-*. Это позволяет создавать
уникальные анимации без изменения общей конфигурации.
Пример базовой инициализации с глобальными настройками:
AOS.init({
duration: 1200, // стандартная длительность анимации в миллисекундах
once: true, // анимация срабатывает один раз при скролле
offset: 120, // смещение триггера анимации от верхней границы экрана
});
После этого каждый элемент с атрибутом data-aos будет
анимироваться в соответствии с глобальными настройками, если для него не
указаны индивидуальные параметры.
Для задания уникальной анимации используются следующие атрибуты:
data-aos — тип анимации (например,
fade-up, fade-down, flip-left,
zoom-in).data-aos-duration — длительность
анимации в миллисекундах. Переопределяет глобальный параметр
duration.data-aos-delay — задержка перед
запуском анимации (в миллисекундах).data-aos-offset — смещение от границы
видимой области экрана для запуска анимации.data-aos-easing — функция плавности
(например, ease, ease-in-out,
linear).data-aos-once — срабатывание анимации
один раз (true) или каждый раз при прокрутке
(false).Пример с индивидуальными параметрами:
<div data-aos="fade-up"
data-aos-duration="2000"
data-aos-delay="500"
data-aos-offset="200"
data-aos-easing="ease-in-out"
data-aos-once="false">
Контент с индивидуальной анимацией
</div>
В этом примере анимация fade-up длится 2 секунды,
срабатывает с задержкой 0.5 секунды, начинается чуть позже при прокрутке
(offset: 200) и повторяется при каждом попадании в область
видимости (once: false).
Индивидуальные атрибуты переопределяют глобальные настройки только для конкретного элемента. Остальные элементы продолжают использовать глобальные параметры.
Пример комбинирования:
AOS.init({
duration: 1000, // глобальная длительность
offset: 100,
once: true,
});
<div data-aos="zoom-in" data-aos-duration="2500">
Этот элемент будет анимироваться дольше остальных
</div>
<div data-aos="fade-down">
Этот элемент использует глобальные настройки
</div>
Здесь первый элемент получает индивидуальную длительность 2500 мс, второй элемент — стандартные 1000 мс.
Индивидуальные настройки позволяют создавать цепочки эффектов при скролле, где соседние блоки анимируются по-разному, например:
<section>
<div data-aos="fade-right" data-aos-delay="0">Блок 1</div>
<div data-aos="fade-right" data-aos-delay="200">Блок 2</div>
<div data-aos="fade-right" data-aos-delay="400">Блок 3</div>
</section>
Каждый блок появляется с одинаковой анимацией, но с постепенной задержкой, создавая эффект последовательного появления.
В случаях, когда атрибуты необходимо менять программно, можно
использовать метод setAttribute и вызывать
AOS.refresh() для обновления библиотеки:
const element = document.querySelector('.dynamic');
element.setAttribute('data-aos', 'flip-left');
element.setAttribute('data-aos-duration', '1500');
AOS.refresh(); // обновляет настройки анимаций после изменения атрибутов
Это позволяет управлять анимациями элементов, добавленных динамически после загрузки страницы, например, при подгрузке контента через AJAX.
data-aos-delay и
data-aos-duration для создания плавных
последовательных эффектов.offset, чтобы элементы не анимировались слишком
поздно и не оставались незамеченными.once: false) важно следить за производительностью
при прокрутке, особенно на мобильных устройствах.Индивидуальные настройки AOS обеспечивают гибкость и позволяют создавать динамичные, выразительные интерфейсы, сохраняя при этом простоту использования и совместимость с глобальными параметрами.