Для использования анимации при скролле списков необходимо подключить библиотеку AOS к проекту. Обычно подключение происходит через CDN или установку через npm.
Подключение через 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>
Инициализация в Jav * aScript:
AOS.init({
duration: 800, // продолжительность анимации в миллисекундах
easing: 'ease-in-out', // функция ускорения
once: true, // анимация срабатывает один раз
mirror: false // анимация при скролле вверх
});
Списки могут быть неупорядоченными
(ul), упорядоченными
(ol) или кастомными блоками. Чтобы применять
анимацию, к каждому элементу списка добавляется атрибут
data-aos с типом анимации.
Пример неупорядоченного списка:
<ul>
<li data-aos="fade-up">Первый элемент</li>
<li data-aos="fade-up" data-aos-delay="100">Второй элемент</li>
<li data-aos="fade-up" data-aos-delay="200">Третий элемент</li>
<li data-aos="fade-up" data-aos-delay="300">Четвёртый элемент</li>
</ul>
Объяснение ключевых атрибутов:
data-aos — тип анимации (fade-up,
fade-down, fade-left, fade-right,
zoom-in, flip-left и т.д.).data-aos-delay — задержка анимации в
миллисекундах.data-aos-duration — индивидуальная продолжительность
анимации для конкретного элемента.data-aos-offset — смещение, при котором анимация начнёт
срабатывать относительно верхнего края экрана.data-aos-easing — индивидуальная функция
ускорения.Для списков часто требуется эффект “ступенчатого
появления”, когда каждый элемент появляется с небольшой
задержкой. Это достигается с помощью data-aos-delay.
Рекомендуется увеличивать задержку на одинаковую величину для каждого
последующего элемента.
Пример:
<ol>
<li data-aos="fade-right" data-aos-delay="0">Пункт 1</li>
<li data-aos="fade-right" data-aos-delay="100">Пункт 2</li>
<li data-aos="fade-right" data-aos-delay="200">Пункт 3</li>
<li data-aos="fade-right" data-aos-delay="300">Пункт 4</li>
</ol>
Такой подход создаёт ощущение динамичного появления элементов по мере прокрутки страницы.
Для списков с вложенными списками (ul внутри
li) или карточками внутри списков можно комбинировать
разные эффекты анимации. При этом важно правильно назначать задержки и
типы анимации, чтобы анимация не выглядела хаотично.
Пример вложенного списка:
<ul>
<li data-aos="fade-up" data-aos-delay="0">
Главный пункт 1
<ul>
<li data-aos="fade-left" data-aos-delay="100">Подпункт 1.1</li>
<li data-aos="fade-left" data-aos-delay="200">Подпункт 1.2</li>
</ul>
</li>
<li data-aos="fade-up" data-aos-delay="300">Главный пункт 2</li>
</ul>
Особенности:
data-aos-delay.По умолчанию анимация в AOS может срабатывать только один раз, но для динамических списков, подгружаемых при скролле, полезно разрешить повторное воспроизведение.
AOS.init({
once: false // элементы будут анимироваться каждый раз при скролле
});
Если требуется динамически добавлять элементы в список после загрузки страницы, необходимо перезапустить инициализацию:
AOS.refresh();
Это обновляет все элементы, отмеченные data-aos, включая
новые элементы.
Для более гибкого контроля над анимацией списков можно комбинировать AOS с собственными CSS-анимациями:
.fade-up-custom {
opacity: 0;
transform: translateY(50px);
transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
[data-aos="fade-up-custom"].aos-animate {
opacity: 1;
transform: translateY(0);
}
В разметке:
<li data-aos="fade-up-custom" data-aos-delay="150">Кастомный элемент</li>
Такой подход позволяет создавать уникальные анимации, недоступные стандартными эффектами AOS.
AOS автоматически учитывает размеры окна браузера, но при сложных списках полезно настраивать offset для корректного срабатывания анимации на мобильных устройствах:
<li data-aos="fade-up" data-aos-offset="100">Элемент с небольшим смещением</li>
data-aos-delay) для создания плавного эффекта.offset и
duration.Эти методы позволяют создавать динамичные и эстетичные списки, которые оживают при прокрутке, повышая визуальную привлекательность интерфейса и делая контент более интерактивным.