Библиотека AOS (Animate on Scroll) позволяет создавать плавные анимации элементов при их появлении в области видимости пользователя. Комбинированные анимации подразумевают использование нескольких эффектов одновременно, что позволяет достичь более выразительного визуального результата и динамики интерфейса.
В AOS комбинирование анимаций достигается за счёт
одновременного применения нескольких классов анимаций и
корректного задания их параметров, таких как duration,
delay, offset и easing. Эти
параметры позволяют управлять временем и стилем появления элементов,
создавая эффекты последовательного или одновременного движения.
Элемент может одновременно выполнять несколько типов анимаций,
например, появляться с плавным увеличением размера и смещением по оси X.
Для этого в атрибуте data-aos указывают одну основную
анимацию, а дополнительные эффекты реализуются через
CSS-переходы или кастомные классы:
<div class="box" data-aos="fade-up" data-aos-duration="1000" data-aos-delay="300"></div>
Для добавления эффекта масштабирования можно создать дополнительный CSS-класс:
.box {
transform: scale(0.8);
transition: transform 1s ease-in-out;
}
.box[data-aos].aos-animate {
transform: scale(1);
}
В результате элемент будет одновременно появляться снизу и увеличиваться в размере, создавая впечатление более глубокой анимации.
Часто требуется, чтобы несколько эффектов выполнялись один за другим.
Для этого используется параметр data-aos-delay, который
задаёт задержку перед началом анимации:
<div class="item" data-aos="fade-up" data-aos-delay="0"></div>
<div class="item" data-aos="fade-up" data-aos-delay="150"></div>
<div class="item" data-aos="fade-up" data-aos-delay="300"></div>
Особенности:
fade, slide, zoom), чтобы
элементы появлялись последовательно с разными стилями движения.AOS поддерживает несколько ключевых атрибутов, которые позволяют создавать сложные комбинированные эффекты:
data-aos-duration — задаёт длительность анимации в
миллисекундах.data-aos-delay — задержка перед анимацией.data-aos-offset — смещение точки срабатывания анимации
относительно верхней границы окна.data-aos-easing — тип плавности движения, например:
ease, ease-in-out, linear.Пример сложной анимации, сочетающей fade-up и смещение
по горизонтали:
<div class="card"
data-aos="fade-up"
data-aos-duration="1200"
data-aos-delay="200"
data-aos-offset="200"
data-aos-easing="ease-in-out"></div>
Дополнительно можно добавить кастомные CSS-анимации, которые будут срабатывать одновременно с AOS:
.card {
transform: translateX(-50px);
transition: transform 1.2s ease-in-out;
}
.card[data-aos].aos-animate {
transform: translateX(0);
}
Такой подход позволяет создавать визуальные эффекты движения, масштабирования и прозрачности одновременно.
Для списка элементов часто применяется стратегия
последовательного появления, когда каждый элемент
получает свою задержку. Вместо ручного прописывания
data-aos-delay для каждого элемента можно использовать
JavaScript для автоматической генерации задержек:
const items = document.querySelectorAll('.list-item');
items.forEach((item, index) => {
item.setAttribute('data-aos', 'fade-up');
item.setAttribute('data-aos-delay', index * 150);
item.setAttribute('data-aos-duration', '1000');
});
Результат — плавное появление всех элементов с равномерным шагом по времени, что создаёт ощущение динамичного потока информации.
Для создания уникальных комбинаций анимаций AOS часто используют встроенные события библиотеки:
aos:in — срабатывает, когда элемент появился в области
видимости.aos:out — срабатывает при выходе элемента из
видимости.Пример динамической анимации с изменением цвета и масштаба:
document.addEventListener('aos:in', ({ detail }) => {
if(detail.classList.contains('highlight')) {
detail.style.backgroundColor = '#f0c000';
detail.style.transform = 'scale(1.1)';
}
});
Так можно комбинировать встроенные эффекты AOS с кастомными визуальными изменениями, создавая сложные анимационные сценарии.
data-aos-delay
позволяет управлять порядком появления элементов.fade, slide, zoom) для более
выразительного визуального восприятия.Комбинированные анимации с AOS предоставляют мощный инструмент для создания интерактивных интерфейсов, где элементы страницы не только появляются, но и взаимодействуют визуально, создавая динамику и глубину визуального ряда.