@Nwton

Определить момент конца анимации?

Есть блок с анимацией. Анимация внутри класса (т.е. frame), поэтому, если вкладка неактивна, то браузер обновляет frame 2 раза в секунду, вместо 60. Поэтому, если повесить listener на animend, то он сработает гораздо позже, чем необходимо, если юзер в это время будет на другой вкладке.

Собственно, как решить эту проблему и вызвать callback ИЛИ когда анимация действительно закончится ИЛИ когда она должна была закончится?

Сначала попробовал прикрепить искусственный таймер с рекурсией, который доставал из класса animDuration и проверял, прошло ли необходимое время со старта анимации. Но тогда возникает проблема с тем, что браузер может дропнуть выполнение функции из-за большого колва вызовов.

Дальше я просто добавил setTimeout с 10ms. Но это тоже плохой выход, так как при неактивной вкладке, timeout будет вызывать гораздо реже, чем каждые 10ms.

Что можно сделать?
p.s. Вопрос принципиальный, т.к. приложение полу игровое и анимация яв. важной частью интерфейса.
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы