AOS (Animate on Scroll) — это легковесная библиотека для анимации элементов при прокрутке страницы. Линейная анимация в AOS реализуется через простое управление прямолинейным переходом свойств элементов без сложных кривых ускорения или замедления. Основное преимущество линейного эффекта — предсказуемость движения и равномерная скорость появления элементов.
Для работы с анимацией необходимо подключить CSS и JS AOS:
<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>
Инициализация выполняется один раз в скрипте:
AOS.init({
duration: 1200, // Время анимации в миллисекундах
easing: 'linear', // Линейная функция распределения
once: true, // Анимация срабатывает только один раз
});
Ключевой параметр для линейной анимации —
easing: 'linear', который гарантирует равномерное изменение
значений CSS от начального состояния к конечному.
Каждому элементу, который должен анимироваться, присваивается атрибут
data-aos. Примеры линейных анимаций:
<div data-aos="fade-up" data-aos-duration="1500" data-aos-easing="linear">
Линейная анимация появления сверху
</div>
<div data-aos="slide-left" data-aos-duration="1000" data-aos-easing="linear">
Линейное смещение влево
</div>
Обязательные моменты при работе с линейной анимацией:
data-aos-duration — регулирует длительность анимации. В
линейной анимации важно установить точное время для синхронизации
нескольких элементов.data-aos-easing="linear" — ключевой атрибут для
равномерного движения. Любая другая кривая ускорения приведет к эффекту
ease-in/out.data-aos-delay — позволяет задать задержку начала
анимации, что удобно при создании цепочек анимаций.<div data-aos="fade-in" data-aos-duration="1200" data-aos-easing="linear">
Плавное появление
</div>
Здесь прозрачность увеличивается равномерно от 0 до 1 без ускорений или замедлений.
<div data-aos="slide-right" data-aos-duration="1000" data-aos-easing="linear">
Смещение вправо
</div>
<div data-aos="slide-down" data-aos-duration="1000" data-aos-easing="linear">
Смещение вниз
</div>
Эти эффекты перемещают элементы по прямой линии с равномерной скоростью, создавая аккуратный визуальный поток при прокрутке страницы.
AOS позволяет динамически изменять параметры анимации после инициализации. Например, можно задать длительность и линейность для всех элементов программно:
AOS.init({
duration: 1000,
easing: 'linear',
offset: 200, // Отступ срабатывания анимации
});
Для изменения параметров конкретного элемента:
const element = document.querySelector('.animated-item');
element.setAttribute('data-aos-duration', '800');
element.setAttribute('data-aos-easing', 'linear');
AOS.refresh(); // Обновление состояния библиотеки
Линейная анимация особенно удобна для каскадного появления элементов, когда несколько блоков появляются с одинаковой скоростью, но с разными задержками:
<div data-aos="fade-up" data-aos-duration="1000" data-aos-delay="0" data-aos-easing="linear">Блок 1</div>
<div data-aos="fade-up" data-aos-duration="1000" data-aos-delay="200" data-aos-easing="linear">Блок 2</div>
<div data-aos="fade-up" data-aos-duration="1000" data-aos-delay="400" data-aos-easing="linear">Блок 3</div>
Равномерная скорость движения позволяет создать визуально чистый и предсказуемый поток элементов без эффектов ускорения.
data-aos-anchor и
data-aos-anchor-placement, чтобы контролировать момент
срабатывания анимации относительно других элементов.На мобильных устройствах важно учитывать производительность, так как одновременное появление большого числа элементов с анимацией может вызывать подтормаживания. Для этого рекомендуется:
once: true для уменьшения нагрузки при
повторной прокрутке.duration и offset.Линейная анимация в AOS обеспечивает предсказуемое и чистое визуальное поведение элементов при прокрутке, позволяя создавать аккуратные, строгие и современные интерфейсы без сложных кривых ускорений.