javascript / jquery内容旋转器变得疯狂(一段时间后开始循环非常快)

我正在使用一个非常简单的内容旋转器。

虽然它似乎工作正常,但有时候,在浏览器窗口停留在该页面上一段时间后(可能是10分钟),动画开始高速播放(就像每个“帧”仅1毫秒)。

这是我的HTML:

 

这是脚本

 function tCycle() { var duration = 4000; var speed = 500; // var arrDivs = $('#contentRotator .cItem'); var arrLength = arrDivs.length; var iCurrent = 0; var iNext; arrDivs.not(arrDivs.eq(iCurrent)).hide(); setInterval(function () { iNext = (iCurrent + 1) % arrLength; arrDivs.eq(iNext).fadeIn(speed); arrDivs.eq(iCurrent).fadeOut(speed); iCurrent = (iCurrent + 1) % arrLength; }, duration); } 

我在chrome 16,ie8,firefox 7,opera 11和safari 5中测试了这个页面。它似乎只发生在chrome中。

关于发生了什么的任何想法?

编辑:我发现当它疯了,如果我滚动到页面底部然后再回来(旋转器在顶部),它(有时)固定,速度是正常的。

我已经测试了http://jsfiddle.net/jphellemons/fRGqA/ ,它可以在我的机器上运行。 我有谷歌Chrome 15.0.874.92 beta-m

适用于我的机器

您可能希望使用像innerfade这样的jQuery插件,因为fadeInfadeOut不能如此流畅地工作。

或使用:

 arrDivs.eq(iCurrent).fadeOut(speed, function() { arrDivs.eq(iNext).fadeIn(speed); }); 

编辑:适用于Chrome 15.0.874.100!