0

類似:プログレスバー付きのJqueryスライダー

このスライダーとプログレスバーがありますが、プログレスバーを[前へ]ボタンと[次へ]ボタンとも同期させたいです。したがって、[次へ]をクリックすると、プログレスバーが最初から始まります。

http://jsfiddle.net/aidenguinnip/8rJws/

$(window).load(function(){
var currentIndex = 0;// store current pane index displayed
var ePanes = $('#slider .panel'), // store panes collection
    time   = 3000,
    bar = $('.progress_bar');

function showPane(index){// generic showPane
    // hide current pane
    ePanes.eq(currentIndex).stop(true, true).fadeOut();
    // set current index : check in panes collection length
    currentIndex = index;
    if(currentIndex < 0) currentIndex = ePanes.length-1;
    else if(currentIndex >= ePanes.length) currentIndex = 0;
    // display pane
    ePanes.eq(currentIndex).stop(true, true).fadeIn();
    // menu selection
    $('.nav li').removeClass('current').eq(currentIndex).addClass('current');
}
// bind ul links
$('.nav li').click(function(ev){showPane($(this).index());});
// bind previous & next links
$('.previous').click(function(){showPane(currentIndex-1);});
$('.next').click(function(){showPane(currentIndex+1);});
// apply start pane
showPane(0);

function run(){
    bar.width(0);
    showPane(currentIndex+1);
    bar.animate({'width': "+=400"}, time, run);
}

run();

});
4

1 に答える 1

1

どうぞ...

http://jsfiddle.net/8rJws/1/

スライドを変更するときにアニメーションを停止し、バーの幅を0にリセットしてから、アニメーションを再開しました(10行目を参照)...

bar.stop(true, true).css("width", 0).animate({'width': "+=400"}, time, run);
于 2013-01-30T17:33:38.057 に答える