Anime.js предоставляет мощные возможности для создания сложных
анимаций с плавными переходами. Одними из наиболее выразительных функций
являются кривые анимации elastic и bounce,
которые позволяют моделировать реалистичные движения объектов, имитируя
физические эффекты упругости и отскока.
easing и его
рольВ anime.js параметр easing управляет тем, как значение
анимируемого свойства изменяется во времени. Для elastic и
bounce это особенно важно, так как они задают динамику
движения:
anime({
targets: '.box',
translateX: 250,
duration: 2000,
easing: 'easeOutElastic(1, .5)'
});
Объяснение параметров elastic:
easeOutElastic(amplitude, period) — наиболее
популярный вариант.
amplitude — амплитуда «прыжка»; чем больше значение,
тем сильнее колебания.period — период колебаний; уменьшение этого значения
делает анимацию более «быстрой» и частой.Другие варианты easing:
easeInElastic — начинается медленно, с постепенным
увеличением скорости и колебаний.easeInOutElastic — комбинирует эффекты
easeIn и easeOut, создавая симметричные
колебания в начале и в конце анимации.elastic с несколькими элементамиanime({
targets: '.circle',
translateY: [
{ value: -100, duration: 1000 },
{ value: 0, duration: 1000 }
],
easing: 'easeOutElastic(1, 0.3)',
delay: anime.stagger(200)
});
anime.stagger(200) создаёт эффект последовательного
анимирования элементов с задержкой 200 мс.bounce и особенности движенияbounce моделирует поведение объекта, как будто он падает
и отскакивает от поверхности:
anime({
targets: '.ball',
translateY: 300,
duration: 1500,
easing: 'easeOutBounce'
});
Основные варианты:
easeInBounce — объект начинает движение с эффекта
«подпрыгивания».easeOutBounce — объект падает и отскакивает в конце
анимации.easeInOutBounce — комбинированный эффект начала и конца
с подпрыгиваниями.elastic и bounceДля создания более сложных анимаций можно комбинировать различные easing-функции:
anime({
targets: '.mixed',
translateX: 300,
translateY: 200,
duration: 2000,
easing: 'easeOutElastic(1, 0.5)',
rotate: '1turn'
});
anime({
targets: '.mixed',
translateY: 0,
duration: 1000,
easing: 'easeOutBounce'
});
elastic и bounce чувствительны к времени и
амплитуде:
Использование elastic и bounce делает
интерфейс динамичным и визуально привлекательным, приближая поведение
элементов к естественной физике.
elastic может выглядеть
неестественно; обычно значение 0.5–1 достаточно.timeline для точного контроля.Хотите, я могу подготовить отдельную подробную таблицу со
всеми вариантами easing elastic и bounce с
примерами кода для учебника? Это будет удобно для быстрых
ссылок и наглядного изучения.