Для работы с анимациями появления fade необходимо
подключить библиотеку AOS к проекту. Это можно сделать двумя способами:
через CDN или установку через npm/yarn.
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>
Инициализация в JavaScript:
AOS.init({
duration: 1200, // продолжительность анимации в миллисекундах
once: true, // анимация срабатывает только один раз
});
Параметр duration задаёт время анимации, а
once контролирует, будет ли анимация повторяться при
повторном появлении элемента в области видимости.
AOS предоставляет несколько вариантов анимации появления:
fade — классическое появление без движения.fade-up — элемент появляется с лёгким смещением снизу
вверх.fade-down — появление с верхнего края к исходной
позиции.fade-left — элемент появляется, смещаясь с левой
стороны.fade-right — появление с правого края.fade-up-right / fade-up-left —
комбинированное появление с диагональным смещением.fade-down-right / fade-down-left —
диагональное появление сверху с смещением.Применение анимации осуществляется через атрибут
data-aos в HTML:
<div data-aos="fade-up">
Этот блок появится с анимацией fade-up
</div>
Каждый элемент может иметь индивидуальные параметры через атрибуты
data-aos-*:
data-aos-duration — индивидуальная
продолжительность анимации (в мс):<div data-aos="fade" data-aos-duration="2000">
Появление длится 2 секунды
</div>
data-aos-delay — задержка перед
началом анимации (в мс):<div data-aos="fade-up" data-aos-delay="500">
Анимация начнется через полсекунды
</div>
data-aos-offset — расстояние от
верхнего края окна до элемента, при котором срабатывает анимация:<div data-aos="fade-left" data-aos-offset="300">
Анимация сработает раньше, чем элемент полностью войдет в зону видимости
</div>
data-aos-easing — функция ускорения
для анимации, например ease, ease-in,
ease-out, ease-in-out:<div data-aos="fade-down" data-aos-easing="ease-in-out">
Плавное появление с ускорением
</div>
data-aos-once — если указано
true, анимация срабатывает только один раз:<div data-aos="fade" data-aos-once="true">
Появление только при первом скролле
</div>
Можно комбинировать несколько параметров для достижения сложных эффектов:
<div data-aos="fade-up"
data-aos-duration="1500"
data-aos-delay="300"
data-aos-easing="ease-out"
data-aos-once="true">
Сложная анимация fade-up с задержкой и плавным ускорением
</div>
При этом элементы могут быть сгруппированы в контейнеры для создания последовательной анимации:
<section class="features">
<div data-aos="fade-right" data-aos-delay="100">Фича 1</div>
<div data-aos="fade-right" data-aos-delay="300">Фича 2</div>
<div data-aos="fade-right" data-aos-delay="500">Фича 3</div>
</section>
Такой подход позволяет добиться эффекта «поочерёдного появления» элементов при скролле.
AOS предоставляет методы для динамического контроля анимаций:
AOS.refresh();
AOS.refreshHard();
AOS.init({ disable: 'mobile' }); // отключение на мобильных устройствах
Эти методы полезны при асинхронной подгрузке контента или работе с SPA-приложениями.
once: true для элементов, которые
не требуют повторной анимации, чтобы уменьшить нагрузку на
рендеринг.offset
для более раннего или позднего срабатывания анимации.AOS работает во всех современных браузерах и корректно поддерживает адаптивные интерфейсы. На мобильных устройствах рекомендуется проверять производительность, особенно при множественных анимациях с длинной продолжительностью.
fade-анимации хорошо сочетаются с CSS-трансформациями и
библиотеками сеток, позволяя создавать плавные интерактивные эффекты без
сложного JavaScript-кода.