Для начала работы с библиотекой AOS (Animate on Scroll) необходимо подключить её CSS и JavaScript файлы. Существует два основных способа: через CDN или локально, скачав файлы библиотеки.
Через CDN:
<!-- CSS -->
<link href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.css" rel="stylesheet">
<!-- JS -->
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.js"></script>
Если предпочтительно использовать локальные файлы, достаточно скачать библиотеку с официального репозитория и подключить её аналогичным образом.
После подключения файлов необходимо инициализировать библиотеку. Для
этого используется функция AOS.init(), которую обычно
помещают в конец тела документа или внутри события
DOMContentLoaded:
<script>
document.addEventListener('DOMContentLoaded', () => {
AOS.init();
});
</script>
Инициализация может содержать настройки, влияющие на поведение анимаций:
AOS.init({
offset: 120, // смещение по вертикали до запуска анимации (px)
delay: 0, // задержка перед анимацией (ms)
duration: 400, // длительность анимации (ms)
easing: 'ease', // тип easing анимации
once: false, // воспроизводить анимацию только один раз
mirror: false, // повторять анимацию при прокрутке вверх
});
Чтобы элемент анимировался при появлении в области видимости,
достаточно добавить к нему атрибут data-aos с указанием
типа анимации:
<div data-aos="fade-up">
Появление снизу с плавным эффектом
</div>
<div data-aos="zoom-in" data-aos-duration="800">
Увеличение с задержкой 800ms
</div>
Ключевые моменты:
data-aos – задаёт тип анимации (fade,
fade-up, fade-down, zoom-in,
flip-left и другие).data-aos-duration – индивидуальная длительность
анимации для конкретного элемента.data-aos-delay – задержка перед началом анимации.data-aos-offset – смещение триггера появления элемента
относительно окна просмотра.<div data-aos="fade-right" data-aos-delay="300">
Появление с задержкой 300ms
</div>
<div data-aos="flip-left" data-aos-duration="1000">
Поворот с длительностью 1 секунда
</div>
<div data-aos="fade-up" data-aos-offset="200">
Анимация с ранним срабатыванием
</div>
<div data-aos="fade-down" data-aos-once="true">
Появление только один раз
</div>
Чтобы анимации выглядели естественно, элементы можно группировать внутри контейнеров и задавать последовательное появление с помощью задержек:
<section>
<div data-aos="fade-up" data-aos-delay="0">Блок 1</div>
<div data-aos="fade-up" data-aos-delay="200">Блок 2</div>
<div data-aos="fade-up" data-aos-delay="400">Блок 3</div>
</section>
Такой подход создаёт эффект поочерёдного появления элементов при скролле.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Минимальный пример AOS</title>
<link href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.css" rel="stylesheet">
<style>
body {
font-family: Arial, sans-serif;
padding: 50px;
}
div.box {
background-color: #3498db;
color: #fff;
padding: 50px;
margin-bottom: 20px;
text-align: center;
font-size: 1.5rem;
}
</style>
</head>
<body>
<div class="box" data-aos="fade-up">Блок 1</div>
<div class="box" data-aos="fade-up" data-aos-delay="200">Блок 2</div>
<div class="box" data-aos="fade-up" data-aos-delay="400">Блок 3</div>
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.js"></script>
<script>
AOS.init({
duration: 800,
once: true
});
</script>
</body>
</html>
В этом примере:
once: true.once: true, чтобы анимации не срабатывали повторно при
скролле.offset может требовать
корректировки для мобильных устройств.Этот минимальный пример позволяет быстро внедрить анимацию при скролле и понять основные принципы работы AOS, после чего можно расширять функционал, добавляя более сложные эффекты и кастомные настройки.