Для использования библиотеки AOS (Animate on Scroll) в проектах с jQuery необходимо подключить её CSS и JS файлы. Стандартная схема подключения выглядит следующим образом:
<link href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.css" rel="stylesheet">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.js"></script>
После подключения можно инициализировать AOS через jQuery, используя
событие $(document).ready():
$(document).ready(function() {
AOS.init({
duration: 1200, // продолжительность анимации в миллисекундах
once: true, // анимация срабатывает только один раз
});
});
Ключевые моменты инициализации:
duration — время анимации, задаваемое в
миллисекундах.once — флаг, определяющий повторное срабатывание
анимации при повторной прокрутке.AOS.init() или локально через атрибуты
HTML.Для применения анимации к элементам используется атрибут
data-aos. Примеры наиболее часто используемых значений:
<div data-aos="fade-up">Содержимое блока</div>
<div data-aos="fade-down">Содержимое блока</div>
<div data-aos="zoom-in">Содержимое блока</div>
Дополнительные атрибуты для тонкой настройки:
data-aos-duration — индивидуальная продолжительность
анимации для конкретного элемента.data-aos-delay — задержка перед началом анимации.data-aos-offset — смещение по вертикали, при котором
начинается анимация.data-aos-easing — тип кривой ускорения
(ease, linear, ease-in-out и
др.).Пример использования с настройками через HTML:
<div data-aos="fade-right" data-aos-duration="1500" data-aos-delay="300" data-aos-offset="200" data-aos-easing="ease-in-out">
Контент с индивидуальной анимацией
</div>
Библиотека AOS полностью совместима с jQuery, что позволяет динамически изменять атрибуты анимации или обновлять их при изменении DOM.
Если элементы добавляются на страницу после первоначальной загрузки, необходимо вызывать:
// добавляем новые элементы через jQuery
$('#container').append('<div class="new-item" data-aos="fade-up">Новый элемент</div>');
// обновляем AOS
AOS.refresh();
Метод AOS.refresh() пересчитывает позиции всех элементов
с анимацией и корректно привязывает их к скроллу.
Можно динамически менять атрибуты data-aos с помощью
jQuery:
$('.item').attr('data-aos', 'fade-left');
AOS.refresh(); // обновление позиций
Для изменения задержки или длительности:
$('.item').attr('data-aos-delay', '500');
$('.item').attr('data-aos-duration', '2000');
AOS.refresh();
Библиотека AOS может использоваться совместно с классическими jQuery-анимациями. Например, можно добавлять классы или запускать цепочки анимаций после срабатывания AOS:
$(document).on('aos:in:fade-up', '.animated-block', function() {
$(this).fadeTo(1000, 1); // jQuery-анимация после анимации AOS
});
Важно: AOS генерирует события в формате
aos:in и aos:out, которые можно ловить через
jQuery, что позволяет интегрировать сторонние эффекты и контролировать
поведение элементов при скролле.
once: true, если анимация не должна
повторяться, чтобы уменьшить нагрузку на рендер.AOS.refresh(), чтобы избежать некорректного
отображения.data-aos-offset, чтобы
анимация запускалась заранее и выглядела плавно.При подгрузке контента через AJAX или изменение текста страницы с jQuery необходимо:
data-aos атрибуты.AOS.refreshHard() для полной переработки всех
элементов с анимацией:$.get('/new-content', function(response) {
$('#content').html(response);
AOS.refreshHard();
});
AOS.refreshHard() пересчитывает абсолютно все элементы,
включая те, что могли быть изменены или добавлены на страницу,
обеспечивая корректное срабатывание анимаций даже на динамических
сайтах.
Можно комбинировать различные эффекты для одного блока:
<div data-aos="fade-up" data-aos-delay="300" data-aos-duration="1000" data-aos-offset="150" data-aos-easing="ease-in-out">
Комбинированный блок с задержкой и ускорением
</div>
С помощью jQuery легко переключать эффекты:
$('.toggle-animation').click(function() {
$(this).attr('data-aos', 'zoom-in');
$(this).attr('data-aos-duration', '800');
AOS.refresh();
});
Такой подход позволяет создавать интерактивные интерфейсы, где анимация зависит от действий пользователя.
Эта методика обеспечивает полную интеграцию AOS с jQuery, позволяя использовать мощные анимации на скролле, управлять их параметрами динамически и поддерживать производительность на крупных проектах с динамическим контентом.