0

わかりましたので、JavaScript でカスタム スライドショーを作成しようとしていますが、スライドごとにカスタムの一時停止間隔を設定したいと思います。

3つのスライドを含むスライドショーがあるとしましょう:

      30 seconds      8 sec  8 sec
|-------------------|------|-------|
       slide 1       slide2  slide3

関数に間隔 [5 , 10 , 20] のリストを与え、その間隔リストを使用してスライドのリストをシャッフルできるようにしたいと考えています。

私は fun で setInterval を使用してこれを解決しようとしましたが、残念ながらそれは次の関数を呼び出すアクションですが、ご存知のように、多くのスライドに拡張することはできません。

コード

// slid is a class having all slides
function bringback() {
    slid.goToSlide(0);
}
function bringback2() {
    slid.goToSlide(2);
    setTimeout( bringback, 8000 );
}
$(document).ready(function(){  
    setInterval(function(){
        slid.goToSlide(1);
        setTimeout( bringback2, 8000 );
    }, 30000);
});
4

1 に答える 1

2

setTimeoutを使用します。

;(function(){

  var intervals = [5,10,20];

  (function update(next){
    // Pick a slide and update the slideshow here

    setTimeout(function(){ 
      update((next + 1)%intervals.length);
    }, intervals[next]*1000);
  })(0);

})();

デモ

次のように、ランダムなスライドを選択するか、スライドを順番に繰り返すようにすることができます。

;(function(){

  var intervals = [5,10,20];

  (function update(next){
    slid.goToSlide(next);

    setTimeout(function(){ 
      update((next + 1)%intervals.length);
    }, intervals[next]*1000);
  })(0);

})();
于 2013-08-15T02:51:13.153 に答える