Для отслеживания прогресса и окончания CSS анимаций можно использовать события, которые генерируются в DOM при изменении состояния анимации. Существуют два основных события, которые можно использовать для этой цели: animationstart и animationend.
Например, для отслеживания окончания анимации, можно использовать следующий код:
const element = document.querySelector('#my-element');
element.addEventListener('animationend', () => {
// код, который нужно выполнить после окончания анимации
});Для отслеживания прогресса анимации можно использовать событие animationiteration, которое генерируется каждый раз, когда анимация проходит через свой цикл. Например:
const element = document.querySelector('#my-element');
element.addEventListener('animationiteration', () => {
// код, который нужно выполнить после каждого цикла анимации
});Аналогично, для отслеживания прогресса плавных переходов, можно использовать событие transitionend. Например:
const element = document.querySelector('#my-element');
element.addEventListener('transitionend', () => {
// код, который нужно выполнить после окончания перехода
});В общем случае, для отслеживания анимаций и переходов в JavaScript, необходимо получить доступ к соответствующим элементам DOM и назначить обработчики событий соответствующих типов. Кроме того, можно использовать библиотеки, такие как jQuery и GreenSock, которые предоставляют удобные методы для работы с анимациями и переходами в JavaScript.