检测页面上的任何内容是否正在设置动画

Mar*_*.io 2 javascript jquery animation jquery-animate

我知道:animated选择器,但目前正在遇到旧IE的(可能是少数几个)性能问题(如图).我觉得这可能是我测试任何页面动画的方式.

目前我正在循环一段时间,核心测试正在进行$('*').is(':animated').这$('*')就是我所担心的......但是因为我不知道在我的插件下动画的div/etc是什么,我不知道怎么做!

var testAnimationInterval = setInterval(function () {

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

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

function animationsFinished() {
    // do whatever
}
Run Code Online (Sandbox Code Playgroud)

有人找到了更好/不同的方式吗?特别是在性能方面?

Vis*_*ioN 5

所有jQuery动画计时器都存储在数组中$.timers.一种选择是只是为了检查是否length$.timers财产是大于零:

if ($.timers.length > 0) {
    // something is animating
}
Run Code Online (Sandbox Code Playgroud)

  • @TJ.它不是jQuery的文档属性.您可以在源代码中找到它:https://github.com/jquery/jquery/blob/master/src/effects.js#L715. (4认同)