Интернет-магазины

Для использования библиотеки 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

Инициализация библиотеки производится вызовом функции 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, чтобы создать эффект последовательного появления.
  • Анимация при изменении DOM: если элементы добавляются динамически, необходимо вызвать AOS.refresh() после добавления новых блоков.
  • Комбинирование с CSS: можно сочетать анимации AOS с CSS-переходами для создания уникальных эффектов, например, плавное затемнение и сдвиг одновременно.

Производительность и оптимизация

  • Для большого числа элементов рекомендуется использовать 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 обеспечивает естественное и привлекательное появление элементов при прокрутке.