Problems with jQuery setInterval()?
Problems with jQuery setInterval()?
我有一个用jQuery构建的图像滑块。它被设置为以7000毫秒的间隔滑动图像。看起来,有时,只有有时,滑块会以超高速滑动图像(滑动之间大约1秒的间隔)。我不能确定原因。请帮助!
链接到带有滑块的站点:http://healthyhometech.com
function slider() {
$(".paging").hide();
$(".paging a:first").addClass("active");
var imageWidth = $(".window").width();
var imageSum = $(".image_reel img").size();
var imageReelWidth = imageWidth * imageSum;
$(".image_reel").css({'width' : imageReelWidth});
rotate = function(){
var triggerID = $active.attr("rel") - 1;
var image_reelPosition = triggerID * imageWidth;
$(".paging a").removeClass('active');
$active.addClass('active');
$(".image_reel").animate({
left: -image_reelPosition
}, 500 );
};
rotateSwitch = function(){
play = setInterval(function(){
$active = $('.paging a.active').next();
if ( $active.length === 0) {
$active = $('.paging a:first');
}
rotate();
}, 7000); //Timer speed
};
rotateSwitch();
$(".image_reel a").hover(function() {
clearInterval(play);
}, function() {
rotateSwitch();
});
};
setInterval有一个关键的问题:它仍然在内存中!因此,有可能在测试时刷新页面,因此,为同一个过程创建不同的setInterval,因此,有时,您会看到过程执行得更快(实际上,setInterval发生了多次)。
我能够通过使用var "my-interval" = setInterval来解决类似的问题,并且在运行setInterval之前,检查它是否存在(不是零)。如果是,杀死它或者根本不运行:
var myInterval;
if (myInteval == undefined) myInterval = setInterval(function () {
...
myInterval=12345;
},..);
尝试在代码的下面部分增加时间值:
$(".image_reel").animate({
left: -image_reelPosition
}, 500 ); //Here increase the value 500 to a value suitable to you, for example 1000, 2000 etc. anything you like.
这里的值以毫秒为单位,定义了动画的速度。
[编辑]好吧,从我观察到的,我认为你得到快速滑动问题只有当你离开网页打开一个选项卡,并继续在其他选项卡上工作,然后当你返回到包含页面的选项卡,它快速滑动图像的速度。然而,如果你一直留在账单上,就不会发生这种情况。我的猜测是你注意到这个问题在Chrome浏览器。
在脚本中似乎没有问题,只有Chrome浏览器的工作方式。如果你在后台留下一个标签,chrome可能会暂停setInterval()函数,当你返回到页面时,它会在后台运行它的时间。这可能就是Chrome浏览器的工作方式。代码没有问题
相关文章:
- Fighting with FRP
- issue with FB.Event.subscribe
- node.js:setInterval()正在跳过调用
- geolocation-marker.js conflict with markerclusterer.js
- Angular 2.0 with JavaScript or TypeScript?
- jQuery - setInterval with $.each
- jQuery animation with setInterval()
- setInterval or setTimeout with String in JavaScript
- fadein() and fadeout() using with setinterval()
- Issues with setInterval
- setInterval with setState in React
- JS: setInterval and clearIntervals with jQuery
- Javascript setInterval() with textbox
- Problems with jQuery setInterval()?
- js的fade in onLoad with for-loop, styles和setInterval不起作用
- javascript stopping setinterval with clearinterval
- Having issues with "setInterval/clearInterval" in
- Javascript createElement with setInterval
- Using setInterval with $(document).ready
- Problem with setInterval