Сообщение от Octane
|
Допустим, мы не успели поймать событие animationend, как тогда определить, что анимация элемента закончилась?
|
хаки и велосипеды начинаются с этой строки
А почему нельзя поймать это событие?
или это чисто тема на рассуждение ?
Сообщение от Octane
|
computedStyle.animationPlayState так и продолжает возвращать значение running, даже если анимация уже прошла.
|
свойство не для того сделано, чтобы показывать, проигрывается ли анимация или нет
Сообщение от Octane
|
Есть идеи?
|
Можно проверить по computedStyle одного из свойств, которое участвует в анимации. Определить, какое свойство участвует, можно по keyframesRule анимации.. а это keyframesRule можно найти из animationName.
Если режим заполнения (overflow) анимации стоит "forwards" или "both" - значением вычисленного стиля элемента будет значение
последнего (!) ключевого кадра.
Если режим заполнения стоит "backwards" или "none" - значением вычисленного стиля будет значение, определённое НЕ из анимации - т.е. либо из каскадного стиля (вероятнее всего), либо из чего-нибудь другого.
Последний ключевой кадр - это последний ключевой кадр (спс К.О.) Не помню, влияет ли на то, каким будет последний ключевой кадр, свойство iterationCount с нецелым значением (напр. "1.5" проиграет один проход и ещё половину следующего прохода)
А вот animationDirection, установленное не в 'normal', обращает наоборот последний ключкадр через экстраполяцию.
... не помню всех деталей. всего лишь полгода прошло)