2

当我查看运行中的代码时,没有任何问题。但是一旦我在另一个浏览器选项卡上花一些时间,然后返回到正在运行的代码,时间/速度就太快了。

这是jQuery:

var divId = 1;
var lp = 0;

$(document).ready(function (){

    setInterval(function()
        {
        //<![CDATA[

            if(divId < 6)
            {
                $('.main-banner').animate({ left: lp },400);

                $(".first-icon-inner").removeClass("active-icon");
                $("#banner-"+divId+" div:first").addClass('active-icon');

                    divId++;
                    lp-=550;

            }
            else
            {
                lp = 0;
                divId=1;

                $('.main-banner').animate({ left: lp },400);

                $(".first-icon-inner").removeClass("active-icon");
                $("#banner-"+divId+" div:first").addClass('active-icon');


            }
            //]]>

    }, 3400);

});
4

1 回答 1

2

jQuery < 1.6.3 存在一个错误 ...摘自jQuery 1.6.3 发行说明

当我们在 1.6 版本中添加支持时,我们对浏览器的 requestAnimationFrame API 寄予厚望。但是,从那时起,我们收到的最大投诉之一与 requestAnimationFrame 在选项卡不可见时的行为方式有关。当标签是不可见的“堆栈”时,启动的所有动画都不会执行,直到将选项卡重新置于焦点为止。然后他们都以曲速动画!我们已经移除了对这个 API 的支持(它不会影响你调用 jQuery 动画功能的方式),并计划将它合并到 jQuery 的未来版本中。

我建议您更新到更新的版本...即 jQuery => 1.6.3

于 2012-07-16T09:33:58.377 回答