Библиотека AOS (Animate on Scroll) предоставляет гибкую систему
управления анимациями при прокрутке страницы. Одним из ключевых
параметров для тонкой настройки поведения анимаций является
mirror. Он определяет, будут ли анимации
повторно срабатывать при обратной прокрутке страницы, то есть когда
элемент покидает область видимости и появляется снова.
Параметр задается при инициализации AOS:
AOS.init({
mirror: true
});
или индивидуально для конкретного элемента через атрибут HTML:
<div data-aos="fade-up" data-aos-mirror="true">
Контент с анимацией
</div>
Возможные значения:
true — анимация повторяется при прокрутке вниз и
вверх.false (значение по умолчанию) — анимация срабатывает
только один раз при первом появлении элемента в области видимости.mirrorПо умолчанию AOS выполняет анимацию один раз, когда элемент
появляется на экране. Параметр mirror изменяет это
поведение следующим образом:
mirror включен, анимация будет срабатывать снова
при повторном появлении элемента на экране.Пример поведения:
AOS.init({
duration: 1200, // длительность анимации
mirror: true // повтор при обратной прокрутке
});
При этом можно комбинировать mirror с другими
параметрами, такими как once, offset и
delay, чтобы создавать сложные анимационные
последовательности.
mirror
увеличивает количество срабатываний анимации, что может повлиять на
производительность страницы при большом количестве элементов. Для
оптимизации следует использовать разумное количество анимируемых блоков
или сокращать длительность анимации.once: параметр
once: true игнорирует mirror. Если необходимо
повторение анимаций, once должен быть отключен
(false).AOS.refresh() для корректной работы
mirror.// Добавление элемента динамически
const newElement = document.createElement('div');
newElement.setAttribute('data-aos', 'fade-left');
document.body.appendChild(newElement);
// Обновление AOS
AOS.refresh();
mirror и задержкой
(delay): задержка применяется каждый раз при
повторном появлении элемента, что позволяет создавать последовательные
эффекты для элементов, видимых несколько раз.Вертикальные списки с повторной анимацией:
<ul>
<li data-aos="fade-up" data-aos-mirror="true">Пункт 1</li>
<li data-aos="fade-up" data-aos-mirror="true" data-aos-delay="100">Пункт 2</li>
<li data-aos="fade-up" data-aos-mirror="true" data-aos-delay="200">Пункт 3</li>
</ul>
Блоки галереи с повторной анимацией при скролле:
<div class="gallery-item" data-aos="zoom-in" data-aos-mirror="true">
Изображение 1
</div>
<div class="gallery-item" data-aos="zoom-in" data-aos-mirror="true" data-aos-delay="150">
Изображение 2
</div>
В обоих случаях при прокрутке вверх и вниз анимации элементов будут воспроизводиться повторно, создавая динамическую и интерактивную визуальную последовательность.
mirrordelay,
duration и offset.Параметр mirror является мощным инструментом для
создания интерактивных интерфейсов с многократными анимационными
эффектами, что особенно полезно для лендингов, галерей и списков
контента с высокой визуальной динамикой.