Для начала работы с библиотекой AOS (Animate on Scroll) необходимо подключить её CSS и JS файлы в проект. Обычно подключение осуществляется через CDN:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.css" />
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.js"></script>
После подключения инициализация происходит с помощью метода
AOS.init():
AOS.init({
offset: 120, // смещение в пикселях от точки запуска анимации
delay: 0, // задержка перед началом анимации (мс)
duration: 400, // длительность анимации (мс)
easing: 'ease', // тип кривой ускорения
once: false, // анимация повторяется при скролле
mirror: false // анимация проигрывается при прокрутке назад
});
Ключевые параметры и их назначение:
offset – задаёт расстояние от верхней границы экрана до
момента запуска анимации.delay – задержка перед анимацией, полезна для
последовательного появления элементов.duration – длительность анимации, определяет скорость
её воспроизведения.easing – кривые ускорения (linear,
ease, ease-in-out, ease-in,
ease-out), влияющие на плавность движения.once – если true, анимация проигрывается
только один раз.mirror – если true, элементы анимируются
при прокрутке обратно.Для применения анимации необходимо добавить к элементу атрибут
data-aos с названием эффекта. Библиотека поддерживает
множество эффектов:
<section data-aos="fade-up">Контент секции 1</section>
<section data-aos="fade-right" data-aos-delay="200">Контент секции 2</section>
<section data-aos="zoom-in" data-aos-duration="800">Контент секции 3</section>
Разбор атрибутов:
data-aos – задаёт тип анимации (fade-up,
fade-down, fade-left, fade-right,
flip-left, flip-right, zoom-in,
zoom-out и др.).data-aos-delay – задержка начала анимации в
миллисекундах.data-aos-duration – длительность анимации в
миллисекундах.data-aos-offset – индивидуальное смещение для
конкретного элемента.data-aos-easing – тип кривой ускорения для конкретного
элемента.data-aos-once – отдельная настройка повторяемости
анимации.Для плавного появления блоков друг за другом удобно использовать
задержку (delay):
<section data-aos="fade-up" data-aos-delay="0">Секция 1</section>
<section data-aos="fade-up" data-aos-delay="150">Секция 2</section>
<section data-aos="fade-up" data-aos-delay="300">Секция 3</section>
Такой подход создаёт эффект ступенчатого появления, особенно полезный при длинных страницах с большим количеством элементов.
Можно комбинировать эффекты AOS с CSS-переходами для создания уникальных анимаций. Например, добавление плавного изменения цвета или тени при появлении:
section {
transition: box-shadow 0.6s ease, background-color 0.6s ease;
}
section[data-aos].aos-animate {
background-color: #f0f0f0;
box-shadow: 0 10px 20px rgba(0,0,0,0.2);
}
В этом примере стандартная анимация fade-up плавно
дополняется изменением фона и тени.
Если на странице появляются новые элементы после загрузки (например, через AJAX), необходимо вручную обновлять AOS:
// После добавления новых элементов
AOS.refresh();
Это гарантирует, что новые секции корректно анимируются при скролле.
Для мобильных устройств можно отключать анимации или изменять их параметры:
AOS.init({
disable: 'mobile', // отключает все анимации на мобильных устройствах
offset: 100,
duration: 500
});
Можно также использовать медиа-запросы в CSS для изменения стилей элементов, которые анимируются, что позволяет сохранять производительность на слабых устройствах.
Библиотека предоставляет события для отслеживания начала и конца анимаций:
document.addEventListener('aos:in', ({ detail }) => {
console.log('Элемент появился:', detail);
});
document.addEventListener('aos:out', ({ detail }) => {
console.log('Элемент исчез:', detail);
});
Эти события позволяют запускать дополнительные действия, например, подгрузку данных, активацию интерактивных элементов или триггеры аналитики.
div, section) лучше
использовать fade или zoom, а для мелких
деталей – flip или slide.offset) может корректироваться динамически.Эти инструменты и настройки делают библиотеку AOS мощным и гибким решением для анимации секций на странице, позволяя создавать плавные, последовательные и визуально привлекательные эффекты появления при скролле.