jquery animate,设置间隔和非活动窗口问题

Gnr*_*zik 3 javascript jquery

所以我有这个奇怪的问题,我正在点击,我有一个幻灯片放映,其中设置间隔激发jquery动画方法.一切都很棒.

直到我切换标签.如果我在一段时间内使用幻灯片切换回切换选项卡,则会反复触发所有突然动画,而不会出现任何间隔.喜欢它正在追赶.

我有点想到它与RequestAnimationFrame和jQuery的animate方法有关.以及制表符处于非活动状态时如何抑制动画渲染.虽然间隔保持不变,但即使窗口处于非活动状态,也会频繁启动.

任何人都可以详细说明这一点,我会非常感激.

以下是执行此操作的核心代码:

function animate(setCurrent){
    animationDistance = opt.cSlideWidth * (opt.cCurrentSlide - 1);
    carousel.animate({left: '-' + animationDistance}, opt.cTransitionSpeed});
}
opt.cSetUpIntervalMethod = function(action){
    if (action === 'start') {
        clearInterval(opt.cSlideTimer);
        opt.cSlideTimer = setInterval(function(){animate();},opt.cSlideDelay);
    }
}
opt.cSetUpIntervalMethod('start');
Run Code Online (Sandbox Code Playgroud)

Ali*_*guy 6

这是旧版JQuery中的一个错误,自从1.6.3版本开始修复.更新您的版本.

"当我们在版本1.6中添加支持时,我们对浏览器的requestAnimationFrame API抱有很高的期望.但是,自那时以来我们收到的最高投诉量之一与requestAnimationFrame在标签不可见时的行为方式有关.所有动画都已启动当标签是不可见的"堆栈"并且在标签恢复焦点之前不会被执行.然后它们都以经线速度动画!我们已经删除了对这个API的支持(这对你调用jQuery动画功能的方式没有影响)并计划将其纳入未来版本的jQuery."

http://blog.jquery.com/2011/09/01/jquery-1-6-3-released/