В библиотеке anime.js для управления анимацией используются определённые константы и перечисления, которые позволяют точно задавать поведение анимаций, управлять их цикличностью, направлением, функциями смягчения и другими параметрами. Понимание этих констант критически важно для эффективного применения библиотеки в проектах различной сложности.
direction)Свойство direction определяет направление
воспроизведения анимации. Возможные значения:
normal — анимация проигрывается один
раз от начального состояния к конечному.reverse — анимация проигрывается один
раз в обратном направлении.alternate — анимация проигрывается
туда и обратно один раз.alternate-reverse — анимация
проигрывается обратно и затем туда один раз.Пример использования:
anime({
targets: '.box',
translateX: 250,
direction: 'alternate',
loop: 2
});
В этом примере элемент .box перемещается вправо, а затем
возвращается в исходное положение, повторяя цикл дважды.
loop)Константа loop управляет количеством повторений
анимации:
integer) — количество
повторений.true — бесконечная анимация.false — анимация проигрывается один
раз.Пример бесконечной анимации:
anime({
targets: '.circle',
rotate: 360,
loop: true,
duration: 2000,
easing: 'linear'
});
easing)anime.js предоставляет встроенные константы для описания
кривых ускорения и замедления анимации. Основные группы:
linear — равномерная скорость.easeInSine, easeOutSine,
easeInOutSine — синусоидальные кривые.easeInQuad, easeOutQuad,
easeInOutQuad — квадратичные кривые.easeInCubic, easeOutCubic,
easeInOutCubic — кубические кривые.easeInQuart, easeOutQuart,
easeInOutQuart — четвёртая степень.easeInQuint, easeOutQuint,
easeInOutQuint — пятая степень.easeInExpo, easeOutExpo,
easeInOutExpo — экспоненциальное ускорение.easeInCirc, easeOutCirc,
easeInOutCirc — окружность.easeInBack, easeOutBack,
easeInOutBack — эффект «отскока» за пределы.Пример использования:
anime({
targets: '.triangle',
translateY: 100,
easing: 'easeOutBounce',
duration: 1500
});
begin, update,
complete)Константы событий позволяют отслеживать процесс анимации:
begin — срабатывает при старте
анимации.update — срабатывает на каждом
кадре.complete — срабатывает при завершении
анимации.Пример:
anime({
targets: '.line',
scaleX: 2,
duration: 1000,
begin: () => console.log('Анимация началась'),
complete: () => console.log('Анимация завершена')
});
play, pause,
restart, seek)Константы, отражающие внутренние методы для управления:
play() — запуск или продолжение
анимации.pause() — приостановка анимации.restart() — перезапуск с начала.seek(time) — установка позиции
анимации в миллисекундах.Пример:
const anim = anime({
targets: '.star',
translateY: 200,
duration: 2000
});
anim.pause(); // остановка
anim.seek(1000); // установка на середину анимации
anim.play(); // продолжение
translateX,
translateY, rotate, scale)В anime.js большинство свойств анимируется через заранее
определённые ключи:
translateX, translateY —
смещение по осям X и Y.rotate — вращение в градусах.scale, scaleX,
scaleY — масштабирование элементов.opacity — прозрачность.skewX, skewY — искажение
по осям.Пример комбинированной анимации:
anime({
targets: '.card',
translateX: 300,
rotate: '1turn',
scale: 1.5,
duration: 1200,
easing: 'easeInOutQuad'
});
Для SVG-элементов доступны дополнительные константы:
strokeDasharray — длина пунктирной
линии.strokeDashoffset — смещение пунктирной
линии.pathLength — длина пути для анимации
обводки.Пример анимации линии:
anime({
targets: 'path',
strokeDashoffset: [anime.setDashoffset, 0],
easing: 'easeInOutSine',
duration: 2000,
loop: true
});
Ключевые моменты для работы с anime.js:
direction и loop управляют цикличностью и
направлением анимации.easing позволяет точно задавать кривые ускорения и
замедления.begin, update,
complete дают контроль над жизненным циклом.play, pause,
restart, seek) позволяют динамически управлять
процессом.translateX, rotate,
scale и др.) и SVG-атрибуты дают полный контроль над
визуальными эффектами.Понимание этих констант обеспечивает создание сложных и гибких анимаций с высокой степенью контроля над каждым кадром.