我正在寻找背景。它播放一次,图像1-3过渡到第三张背景图像后停止播放。我相信该过程会在内存中继续,但是bg不会从序列中的第一张图像开始重复(循环)

如何重新组织此功能以使其达到预期的功能?

的HTML

<div class="bg_spinner"></div>
<ul class="pagination">
    <li class="current"><a href="images/bg_img1.jpg">1</a></li>
    <li><a href="images/bg_img2.jpg">2</a></li>
    <li><a href="images/bg_img3.jpg">3</a></li>
</ul>


JS

$(window).load(function() {
    $('.spinner').fadeOut();
    $('body').css({overflow:'inherit'})
});
swfobject.registerObject("FlashID");

function nextbg(){
    $(".pagination .current").next().children("a").click();
}
setInterval(nextbg,14000);


................................................... .....................................

var fl;


$(document).ready(function(){

var w_img=2800, h_img=1700;
var w,new_w,h, new_h, num;
var h_cont=1000, h_cont_new=1000;
setWidth();
setHeight();
w=new_w;h=new_h;
setSize();
function setWidth(){
    new_w=$(window).width();
}
function setHeight(){
    new_h=$(window).height();
}
function setSize(){
    if ((w/w_img) > (h/h_img)) {
        w_img_new=w+20;
        h_img_new=~~((w+20)*h_img/w_img);
    } else {
        h_img_new=h+20;
        w_img_new=~~((h+20)*w_img/h_img);
    }
    $('#bgSlider img').css({width:w_img_new, height:h_img_new});
    if (h>h_cont) {
        m_top=~~((h-h_cont)/2);
    } else m_top=0
    $('.box').stop().animate({paddingTop:m_top+20},1000, 'easeOutCirc');
    h_cont_new=h_cont
}
setInterval(setNew,1);
function setNew(){
    setWidth();
    setHeight();
    if (fl) {h_cont=800;} else {h_cont=1000;}
    if ((w!=new_w)||(h!=new_h)||(h_cont_new!=h_cont)) {
        w=new_w;h=new_h;
        setSize();
    }
}


})

最佳答案

大多数此类功能要求您跟踪正在使用的元素,并在到达最后一个元素时返回到第一个元素。我在这里看不到。它看起来像这样:

var count;

function nextbg(){
    if (count < $(".pagination li").length)
       $(".pagination li.current").next().children("a").click();
       count++;
    } else {
        $(".pagination li").first().children("a").click();
        count = 0;
    }
}

09-25 17:03
查看更多