郭某人的网站

关于 / 留言

JS HTML DOM 判断元素节点是否正在动画中

Web 前端原生 JavaScript 判断某个元素是否正在播放动画中


在 HTML DOM 中,Element 元素节点类型可以使用 getAnimations 方法获取到元素当前绑定的所有动画,无论是 CSS 动画、CSS 过渡还是 JavaScript 直接交互的动画都可以获取到,这些动画对象具有相同的 playState 只读属性,这个属性就指示了当前动画对象的播放状态,这个属性的可用值如下:

 

idle

动画的当前时间无法决断,并且没有待处理的任务。

running

动画正在播放中。

paused

动画已被暂停,并且动画对象的 currentTime 属性没有在更新。

finished

动画已到达了它其中的一个边界,并且动画对象的 currentTime 属性没有在更新。

 

综上所述,我们可以判断动画对象的 playState 属性值是否为 running 来得知元素是否正在动画中,比如下面的代码:

var anims = Element.getAnimations()
if (anims.some((anim) => { return anim.playState == "running" })) {
console.info("正在动画中")
}

因为元素可能不只绑定了一个动画对象,所以遍历动画集合,只要其中有一个动画正在播放,就表示该元素正在动画中。


最后更新时间:2025/07/22 20:38

给我点电费吧,搬内容也是不容易的

注意!你的赞赏转账请考虑再三后支付,此收款不作任何形式的退款。