Javascript在间隔之间跳跃

时间:2013-08-15 02:44:57

标签: javascript jquery

好的,我正在尝试使用javascript构建自定义幻灯片,但我想为每张幻灯片设置一个自定义暂停间隔。

让我说我有一张幻灯片,里面有3张幻灯片,我希望它像:

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

我希望能够为函数提供间隔列表[5,10,20]并使用该间隔列表随机播放幻灯片列表。

我确实尝试使用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);
});

1 个答案:

答案 0 :(得分: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);

})();

Demo

您可以选择随机幻灯片或按顺序迭代幻灯片,如下所示:

;(function(){

  var intervals = [5,10,20];

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

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

})();