Для использования библиотеки AOS (Animate on Scroll) необходимо подключить её CSS и JS-файлы. Существует два основных способа: через CDN и локально.
Через CDN:
<link href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.js"></script>
Локальная установка через npm:
npm install aos --save
После установки через npm подключение в проекте может выглядеть так:
import AOS from 'aos';
import 'aos/dist/aos.css';
Инициализация библиотеки производится вызовом функции
AOS.init(). Этот вызов нужно выполнить после загрузки DOM,
чтобы элементы на странице были доступны для скрипта.
document.addEventListener('DOMContentLoaded', () => {
AOS.init({
duration: 1200, // Продолжительность анимации в миллисекундах
once: true, // Анимация проигрывается только один раз
});
});
Основные параметры инициализации:
duration — длительность анимации (по умолчанию 400
мс).offset — смещение в пикселях, при котором элемент
начнет анимироваться (по умолчанию 120).delay — задержка перед началом анимации для каждого
элемента.once — если true, анимация проигрывается
только один раз при прокрутке.mirror — если true, элементы анимируются
при прокрутке вверх.Для активации анимации на конкретных элементах используются
HTML-атрибуты data-aos. Примеры:
<div data-aos="fade-up">Появление снизу</div>
<div data-aos="fade-down" data-aos-delay="200">Появление сверху с задержкой</div>
<div data-aos="zoom-in" data-aos-duration="1500">Увеличение с эффектом масштаба</div>
Распространённые значения data-aos:
fade — постепенное появлениеfade-up, fade-down,
fade-left, fade-right — плавное появление с
направлениемzoom-in, zoom-out — увеличение или
уменьшениеflip-left, flip-right,
flip-up, flip-down — эффект переворотаslide-up, slide-down,
slide-left, slide-right — сдвиг с
направленияКаждый элемент можно настраивать отдельно с помощью дополнительных атрибутов:
data-aos-delay — задержка старта в миллисекундах.data-aos-duration — длительность анимации конкретного
элемента.data-aos-offset — смещение от верхнего края окна, при
котором элемент начнет анимацию.data-aos-easing — тип анимационной кривой
(linear, ease, ease-in-out и
др.).В интернет-магазинах библиотека AOS особенно полезна для:
zoom-in
или fade-up привлекает внимание к важной информации.slide-left или
slide-right.Пример разметки карточек товара с использованием AOS:
<div class="product-card" data-aos="fade-up" data-aos-delay="100" data-aos-duration="800">
<img src="product1.jpg" alt="Товар 1">
<h3>Название товара</h3>
<p>Описание товара</p>
<span class="price">1 299 ₽</span>
</div>
<div class="product-card" data-aos="fade-up" data-aos-delay="200" data-aos-duration="800">
<img src="product2.jpg" alt="Товар 2">
<h3>Название товара</h3>
<p>Описание товара</p>
<span class="price">999 ₽</span>
</div>
data-aos-delay,
чтобы создать эффект последовательного появления.AOS.refresh()
после добавления новых блоков.once: true, чтобы анимации не повторялись при каждой
прокрутке.data-aos-delay) на блоках ниже
первого экрана, чтобы первые элементы появлялись сразу и создавали
динамику.AOS предоставляет события, позволяющие отслеживать начало и окончание анимации:
document.addEventListener('aos:in', ({ detail }) => {
console.log('Элемент появился:', detail);
});
document.addEventListener('aos:out', ({ detail }) => {
console.log('Элемент исчез:', detail);
});
Эти события полезны для интеграции с аналитикой или триггеров пользовательских действий, например, подсветки товара или запуска видеопрезентации при появлении блока.
Эта структура позволяет создавать динамичные страницы
интернет-магазинов, где пользовательский опыт усиливается
визуальными эффектами без снижения производительности. Правильная
комбинация параметров duration, delay и
offset обеспечивает естественное и привлекательное
появление элементов при прокрутке.