Для использования библиотеки AOS необходимо подключить её CSS и JS
файлы. Обычно подключение производится в <head> и
перед закрывающим тегом </body> соответственно:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.css" />
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.js"></script>
После подключения выполняется инициализация:
AOS.init({
duration: 1200, // Длительность анимации в миллисекундах
easing: 'ease-in-out', // Тип easing
once: true, // Анимация срабатывает только один раз
mirror: false // Анимация повторяется при скролле вверх
});
Параметры duration, easing,
once и mirror позволяют гибко управлять
поведением эффектов и являются основными при работе с
параллакс-эффектами.
AOS реализует параллакс через атрибуты data-aos. Для
элементов параллакса важно указывать следующие параметры:
data-aos — задаёт тип анимации. Для
параллакса часто используются:
fade-up, fade-down,
fade-left, fade-right — элементы смещаются с
постепенным проявлением.zoom-in, zoom-out — создаёт эффект
приближения или удаления.data-aos-offset — смещение старта
анимации относительно начала видимой области. Позволяет запускать
анимацию раньше или позже появления элемента.
data-aos-delay — задержка анимации
в миллисекундах.
data-aos-duration — индивидуальная
длительность анимации для конкретного элемента.
data-aos-easing — задаёт кривую
easing для элемента.
data-aos-anchor-placement —
определяет точку, относительно которой происходит активация анимации
(top-bottom, center-center и др.).
Пример параллакс-эффекта с задержкой:
<div data-aos="fade-up" data-aos-delay="300" data-aos-duration="1000">
Контент с параллакс-анимацией
</div>
Для создания эффекта глубины используют несколько слоёв элементов с разными параметрами анимации:
<div class="parallax-layer" data-aos="fade-up" data-aos-duration="800"></div>
<div class="parallax-layer" data-aos="fade-up" data-aos-duration="1200" data-aos-delay="200"></div>
<div class="parallax-layer" data-aos="fade-up" data-aos-duration="1600" data-aos-delay="400"></div>
Чем больше различие в duration и delay, тем
сильнее ощущается движение слоёв при скролле. Такой подход имитирует
классический параллакс, когда ближние слои движутся быстрее, а дальние —
медленнее.
AOS позволяет управлять смещением элементов по оси Y с помощью CSS-переменных и transform:
.parallax-layer {
transform: translateY(var(--parallax-offset, 0px));
transition: transform 0.5s ease-out;
}
window.addEventListener('scroll', () => {
const layers = document.querySelectorAll('.parallax-layer');
layers.forEach((layer, index) => {
const offset = window.scrollY * (0.1 * (index + 1));
layer.style.setProperty('--parallax-offset', `${offset}px`);
});
});
Такой метод комбинирует стандартный AOS с кастомной прокруткой, создавая плавный и настраиваемый параллакс.
Часто AOS используется совместно с GSAP или ScrollTrigger для более сложных эффектов. Пример:
gsap.registerPlugin(ScrollTrigger);
gsap.utils.toArray('.parallax-layer').forEach(layer => {
gsap.to(layer, {
y: '+=100',
scrollTrigger: {
trigger: layer,
start: 'top bottom',
end: 'bottom top',
scrub: true
}
});
});
AOS отвечает за начальные анимации появления, а GSAP создаёт плавный параллакс в процессе прокрутки.
duration и delay, чтобы не
перегружать рендеринг.once: true для элементов, которые не
должны повторно анимироваться.fade и translate для
более естественного движения.AOS.refresh() после динамической загрузки
контента.data-aos-anchor для точного
позиционирования активации анимации относительно других элементов.scrollY для проверки параллакс-эффектов без скролла.Эти методы позволяют точно настраивать и визуально контролировать параллакс-анимации на любом веб-проекте.