Javascript 在间隔之间跳转

标签 javascript jquery

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

假设我有一个包含 3 张幻灯片的幻灯片,我希望它是这样的:

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

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

我确实尝试使用 setInterval 和 fun 来解决这个问题,但不幸的是,它是调用下一个函数的选项,但如您所知,它无法扩展到许多幻灯片,

代码

// 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);
});

最佳答案

使用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);

})();

关于Javascript 在间隔之间跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18245536/

相关文章:

javascript - 在jquery中排序导航菜单

javascript - 将html字符串写入文档并在IE10中读取其外部html

javascript - 如何使用 JQuery 刷新 DIV 的内容?

javascript - jquery: 如果 (target) 是 ('.wrapper' 的 child ) then (do something)

javascript - 在 asp.net 子页面中排除母版页 js 文件

JavaScript 与 php 亚马逊 API

javascript - 使用 javascript 显示隐藏的 HTML 元素

javascript - ExtJS 还是 SmartClient?

javascript - 如何在 javascript 中使用小数?

javascript - 需要使用 javascript 实现我的算法