Javascript jQuery横幅旋转太快,即使setTimeout设置为10秒

Javascript jQuery横幅旋转太快,即使setTimeout设置为10秒,javascript,jquery,banner,image-rotation,Javascript,Jquery,Banner,Image Rotation,我为我创建的网站创建了一个简单的旋转横幅 一切都很正常,直到我转到浏览器中的另一个选项卡,几秒钟后返回…横幅每0.5秒或更短时间旋转一次 我不知道为什么会发生这种情况,特别是因为我在javascript中使用了setTimeout,并将其设置为10秒(10000毫秒) 下面是服务器上banner.js文件中的所有代码。请指出任何能解决这个问题的方法。你可以看看上面的网站,也可以看看我拍的视频截图。每个浏览器都有我测试过的问题 我到处寻找“jquery横幅旋转太快”的答案,除了“使用setTime

我为我创建的网站创建了一个简单的旋转横幅

一切都很正常,直到我转到浏览器中的另一个选项卡,几秒钟后返回…横幅每0.5秒或更短时间旋转一次

我不知道为什么会发生这种情况,特别是因为我在javascript中使用了
setTimeout
,并将其设置为10秒(10000毫秒)

下面是服务器上banner.js文件中的所有代码。请指出任何能解决这个问题的方法。你可以看看上面的网站,也可以看看我拍的视频截图。每个浏览器都有我测试过的问题

我到处寻找“jquery横幅旋转太快”的答案,除了“使用setTimeout”之外,没有其他答案可以解决我的问题


你所看到的是动画的积累。当您切换到浏览器中的其他选项卡时,动画将被放入队列中,当您切换回原始选项卡时,所有动画都将按顺序播放

看看
更多信息。

天哪,你是个救生员!我在.animate和问题解决之前添加了.stop()。我不知道jQuery做了动画制作…真的很高兴知道!
var banner_width = 960;
var default_pos = 0;
var current_pos = 0;
var next_pos;
var speed = 500;
var banner_tot; //number of banners
var current_num = 1; //current banner number

    $(function(){

        banner_tot = $(".banner_item").length;
        $(".banner_slider").css({width:(banner_tot*banner_width)});

        setTimeout( "slide()", 10000 );
    });


    function slide(){
        if(current_num==(banner_tot)){
            next_pos= 0;
            $(".banner_slider").animate({left: next_pos}, speed);
            current_num=1;

            setTimeout( "slide()", 10000 );
        }
        else{
            next_pos= current_num*(-banner_width);
            $(".banner_slider").animate({left: next_pos}, speed);
            current_num++;

            setTimeout( "slide()", 10000 );
        }
    }