【问题标题】:Stepping through array with time delay有时间延迟的遍历数组
【发布时间】:2011-05-06 22:52:31
【问题描述】:

我的页面上有标签,每个标签都包含独特的内容。我想在不点击它们的情况下自动旋转标签和内容。页面加载后,我希望此函数开始使用 window.onload = function()

我有以下 JavaScript 数组:

var HomeTabs = [1, 3, 5, 7, 9, 11]

我想知道如何显示 HomeTab 1 10 秒,然后移动到 HomeTab 3,然后在 10 秒后按顺序移动到 HomeTab 5,而不是随机的。当它到达 HomeTab 11 时,它会再次返回 HomeTab 1。

我有一个脚本可以更改ChangeTab(1) 的标签,其中一个是我要显示的标签的编号。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    使用setInterval方法每十秒调用一次函数:

    window.onload = function(){
    
      var HomeTabs = [1, 3, 5, 7, 9, 11];
      var index = 0;
    
      function nextTab() {
        ChangeTab(HomeTabs[index]);
        index = (index + 1) % HomeTabs.length;
      }
    
      nextTab();
    
      window.setInterval(nextTab, 10000);
    
    };
    

    【讨论】:

      【解决方案2】:

      你总是可以在函数中使用 setTimeout,比如

      function startRotating(currentIndex) {
      
        // do some checking on currentIndex
      
        setTimeout(function(){
            startRotating(currentIndex + jump)
        },10000);
      }
      

      这不会像写的那样工作,但你可以从那里扩展它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-17
        • 1970-01-01
        相关资源
        最近更新 更多