Параметр endDelay определяет задержку
перед завершением анимации после того, как она дошла до своей конечной
точки. Его значение задаётся в миллисекундах и позволяет контролировать
паузу между последним кадром анимации и фактическим завершением
таймлайна. Это особенно полезно для создания визуально выразительных
эффектов, когда требуется подчеркнуть финальную позицию элемента или
синхронизировать анимацию с другими событиями на странице.
anime({
targets: '.box',
translateX: 300,
duration: 1000,
endDelay: 500
});
В этом примере .box перемещается на 300 пикселей за 1000
мс, после чего происходит задержка в 500 мс перед завершением
анимации.
delay и
loopdelay – задержка перед запуском
анимации.endDelay – задержка после завершения
анимации, перед тем как анимация будет считаться оконченной.loop
endDelay применяется в конце каждого цикла анимации.anime({
targets: '.circle',
scale: 2,
duration: 800,
loop: 3,
endDelay: 300
});
В этом случае каждый из трёх циклов масштабирования будет завершаться паузой в 300 мс. Это позволяет создавать ощущение «отдыхов» между повторениями анимации, не влияя на её плавность.
directionПараметр direction управляет
направлением анимации (normal, reverse,
alternate). При direction: 'alternate'
endDelay срабатывает после того, как анимация дошла до
последнего кадра в текущем цикле, вне зависимости от направления
движения.
anime({
targets: '.line',
translateY: 150,
duration: 600,
direction: 'alternate',
loop: true,
endDelay: 200
});
Здесь линия перемещается вверх и вниз, а после каждой завершённой фазы добавляется 200 мс задержки перед повторением следующего цикла.
timelineВ anime.timeline()
endDelay может применяться как к отдельным
анимациям, так и к всей временной линии. Это позволяет создавать сложные
последовательности с паузами в ключевых моментах.
let tl = anime.timeline({
targets: '.dot',
easing: 'easeInOutSine',
});
tl.add({
translateX: 100,
duration: 500,
endDelay: 200
})
.add({
translateY: 50,
duration: 400,
endDelay: 100
});
Каждая отдельная анимация в таймлайне получает собственный
endDelay, что позволяет точно регулировать ритм всей
последовательности.
endDelay напрямую влияет на срабатывание событий
complete. Если задан
endDelay, событие complete вызывается только
после того, как задержка закончена.
anime({
targets: '.square',
rotate: 90,
duration: 700,
endDelay: 300,
complete: () => console.log('Анимация завершена')
});
В консоли сообщение появится через 1000 мс: 700 мс – сама анимация +
300 мс – endDelay.
autoplay
и loopПри autoplay: false анимация с endDelay
будет учитывать задержку только после запуска через метод
.play(). В случае loop: true
endDelay повторяется на каждом цикле.
let anim = anime({
targets: '.triangle',
scale: 1.5,
duration: 500,
loop: 2,
endDelay: 400,
autoplay: false
});
anim.play();
Анимация будет масштабироваться дважды, с паузой 400 мс после каждого цикла.
endDelay позволяет вставлять паузы для появления текстов,
всплывающих окон или звуковых эффектов.timeline: добавление
endDelay к ключевым этапам делает последовательность более
выразительной.endDelay является простым, но мощным инструментом
управления темпом анимации в anime.js, позволяя создавать более «живые»
и выразительные интерфейсы.