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插件,因为fadeIn
和fadeOut
不能如此流畅地工作。
或使用:
arrDivs.eq(iCurrent).fadeOut(speed, function() { arrDivs.eq(iNext).fadeIn(speed); });
编辑:适用于Chrome 15.0.874.100!