gpt4 book ai didi

javascript - "animationend"有时不触发

转载 作者:技术小花猫 更新时间:2023-10-29 12:02:26 26 4
gpt4 key购买 nike

我有一个 CSS 动画,它应用到带有 CSS 类的 HTML 元素。我还有一个附加到 animationend 的事件监听器(这是一个现代 Windows 应用程序,因此浏览器仅为 IE11)。我看到的是,有时事件被触发,有时却没有。无论事件触发如何,我总能在视觉上看到它的动画效果。对我来说,这看起来像是某种竞争条件。

我在网络上进行了搜索,试图了解是什么原因导致此事件没有被触发,但我没有找到任何令人满意的结果。我在 MDN 上找到了以下内容:

Note: The transitionend event doesn't fire if the transition is aborted because the animating property's value is changed before the transition is completed.

更新 1:transitionendanimationend 无关,因此此信息无关。

我不确定这是否适用于 CSS 动画。有没有人知道是什么原因造成的?如果有任何事件可以检测到动画已中止,那也可能是一种有用的解决方法。

UPDATE2:我当前使用的解决方法:

element.addEventListener("animationstart", function () {
setTimeout(function () {
// do stuff
}, animationDuration);
});

最佳答案

有没有可能你的动画没有结束?

查看animationcancel 事件的文档:
https://developer.mozilla.org/en-US/docs/Web/Events/animationcancel

但是,浏览器支持似乎参差不齐(HTMLElement.prototype 中的“onanimationcancel” 在 Chrome 67 中为我返回 false)。

目前看来使用setTimeout hack 可能是必要的。

关于javascript - "animationend"有时不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29855929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com