Библиотека AOS (Animate on Scroll) позволяет легко добавлять анимации к элементам при прокрутке страницы. Одним из наиболее эффектных визуальных приёмов является анимация увеличения (zoom), которая создаёт ощущение динамики и глубины.
Анимация увеличения реализуется с помощью атрибута
data-aos, которому присваивается значение
zoom-in, zoom-in-up,
zoom-in-down, zoom-in-left,
zoom-in-right и их обратные варианты zoom-out,
zoom-out-up и т.д. Каждый из вариантов задаёт направление и
тип анимации.
<div data-aos="zoom-in">Элемент увеличивается при прокрутке</div>
<div data-aos="zoom-in-up">Элемент увеличивается и смещается вверх</div>
<div data-aos="zoom-out">Элемент уменьшается при прокрутке</div>
В AOS можно управлять временем анимации с помощью атрибута
data-aos-duration. Значение указывается в миллисекундах. По
умолчанию длительность составляет 400 мс.
<div data-aos="zoom-in" data-aos-duration="1000">Медленное увеличение</div>
<div data-aos="zoom-in" data-aos-duration="300">Быстрое увеличение</div>
Для последовательного появления элементов используется
data-aos-delay. Задержка указывается в миллисекундах и
позволяет создавать цепочку эффектов.
<div data-aos="zoom-in" data-aos-delay="200">Первый элемент</div>
<div data-aos="zoom-in" data-aos-delay="400">Второй элемент</div>
<div data-aos="zoom-in" data-aos-delay="600">Третий элемент</div>
data-aos-delay особенно полезен для списков,
галерей и карточек продуктов.AOS использует CSS-трансформации для увеличения элементов. По
умолчанию масштаб изменяется от 0.8 до 1 для
zoom-in и от 1.2 до 1 для zoom-out. Для тонкой
настройки используется кастомный CSS с селектором
[data-aos].
[data-aos="zoom-in"] {
transform: scale(0.7);
transition: transform 1s ease-out;
}
[data-aos="zoom-out"] {
transform: scale(1.3);
transition: transform 0.8s ease-in;
}
Для вариаций zoom-in-up, zoom-in-down,
zoom-in-left, zoom-in-right элемент
одновременно увеличивается и смещается в заданном направлении. Смещение
задаётся через transform: translateX/Y в CSS, а AOS
добавляет плавность через transition.
[data-aos="zoom-in-up"] {
transform: translateY(50px) scale(0.8);
}
[data-aos="zoom-in-left"] {
transform: translateX(-50px) scale(0.8);
}
translateY(50px) перемещает элемент вниз перед
анимацией.translateX(-50px) перемещает элемент влево.Для повторного срабатывания анимации при повторной прокрутке
используется атрибут data-aos-once="false".
<div data-aos="zoom-in" data-aos-once="false">Элемент анимируется повторно</div>
true (по умолчанию) — анимация выполняется только один
раз.false — элемент анимируется каждый раз, когда
появляется в зоне видимости.Для оптимизации мобильных устройств и снижения нагрузки можно
отключить анимации с помощью data-aos-disable.
<div data-aos="zoom-in" data-aos-disable="true">Отключено на мобильных</div>
Анимации zoom могут комбинироваться с другими эффектами AOS:
fade-up, fade-down)flip-left, flip-right)slide-up, slide-left)<div data-aos="zoom-in" data-aos-anchor-placement="top-bottom" data-aos-delay="200">
Элемент с комбинированным эффектом
</div>
data-aos-anchor-placement задаёт момент запуска
анимации относительно видимой части окна браузера
(top-bottom, center-center,
top-center).Для работы анимаций zoom достаточно подключить библиотеку AOS и
вызвать метод AOS.init(). Дополнительно можно задать
глобальные параметры:
AOS.init({
duration: 800, // длительность по умолчанию
easing: 'ease-in-out', // плавность
once: true, // срабатывание один раз
mirror: false, // повтор анимации при скролле вверх
});
duration — устанавливает длительность всех анимаций без
указания индивидуального атрибута.easing — регулирует ускорение и замедление анимации
(ease, linear, ease-in,
ease-out, ease-in-out).mirror — активирует анимацию при прокрутке вверх,
полезно для длинных страниц.zoom-in для акцента на важных блоках и
заголовках.fade для более мягкого появления
элементов.zoom-out для больших
блоков — эффект может быть резким и отвлекающим.data-aos-delay для создания динамических секций.Эти техники позволяют создавать профессиональные, плавные и динамичные интерфейсы, усиливающие визуальную привлекательность страницы.