javascript – 来自另一个选项卡时Jquery setInterval太快了

前端之家收集整理的这篇文章主要介绍了javascript – 来自另一个选项卡时Jquery setInterval太快了前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个网站,使用 jquery的setIntervall()函数不间断地滑动图像.

当在Chrome 13中调用页面时,我切换到另一个选项卡以在几秒钟后回来,图像滑动发生得更快,就好像它试图保持最佳位置,如果它没有切换到另一个选项卡.

我如何解决这个问题?

$(window).load(function() { 
    setInterval(nextSlide,3500);
});

function nextSlide(){   
    offset += delta;
    $("#slideContent").animate({left: -1 * offset},1000);
}

解:

我选择了jfriend00的第一个建议.现在,当窗口无效时,关闭定时器.

可以找到简单的代码

8/is-there-a-way-to-detect-if-a-browser-window-is-not-currently-active”>here.

解决方法

一开始我想为所有的错误道歉 – 我的英文不完美.

解决你的问题可能很简单:

$(window).load(function() { 
    setInterval(nextSlide,3500);
});

function nextSlide(){   
    offset += delta;
    $("#slideContent").stop(true,true).animate({left: -1 * offset},1000);
}

不活动的浏览器选项卡缓冲一些setInterval或setTimeout函数.
stop(true,true) – 将停止所有缓冲的事件,并且只会执行最后一个动画.
这个问题也会出现在Firefox> 5.0 – 阅读这篇文章Firefox 5 – changes

The window.setTimeout() method now clamps to send no more than one
timeout per second in inactive tabs. In addition,it now clamps nested
timeouts to the smallest value allowed by the HTML5 specification: 4
ms (instead of the 10 ms it used to clamp to).

这里你可以阅读,动画如何运作 – 它多次触发setInterval功能. How animate really works in jQuery

猜你在找的jQuery相关文章