javascript - 检测页面上是否有任何动画

标签 javascript jquery animation jquery-animate

我知道 :animated 选择器,但目前正在遇到(可能是其中之一)旧版 IE 的性能问题(请看图)。我觉得这可能是我测试任何页面动画的方式。

目前我正在一个区间内循环,核心测试是 $('*').is(':animated')。这 $('*') 是我担心的...但是因为我不知道下面正在动画的 divs 等到底是什么我的插件,我不知道还能怎么做!

var testAnimationInterval = setInterval(function () {

    if ( ! $('*').is(':animated') ) {  // all done animating
        clearInterval(testAnimationInterval);

        animationsFinished();  // callback function
    }
}, 300);

function animationsFinished() {
    // do whatever
}

有没有人找到更好/不同的方法来做到这一点?尤其是在性能方面?

最佳答案

所有 jQuery 动画定时器都存储在数组 $.timers 中.一种选择是检查 $.timers 属性的 length 是否大于零:

if ($.timers.length > 0) {
    // something is animating
}

关于javascript - 检测页面上是否有任何动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14218363/

相关文章:

jquery - 如何在 Angular 4 中使用工具提示并从 npm 安装 bootstrap tether jquery?

javascript - 使用 Node.js 从 MySQL 获取数据并将其显示在索引页上

jquery - 如何让这个动画div一键返回?

javascript - 将自定义属性添加到 createdElement - jQuery

javascript - Vue.js - 检测嵌套属性值的变化

javascript - 用js改变背景图片

javascript - 如何使用 jQuery 获取在输入框中输入的上一个文本值

jQuery 删除特定元素后的最后三个元素

javascript - CSS 动画无法启动

android - ShapeShifter 旋转使用坐标 0, 0, 而不是中心