首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >setInterval延迟

setInterval延迟
EN

Stack Overflow用户
提问于 2012-07-30 07:57:06
回答 2查看 395关注 0票数 1

我正在尝试执行一个旋转横幅(通过数组调用它)。我设置了一个间隔,但图像仅在10秒(10000)后显示,然后才开始旋转。我删除了数组中乱七八糟的HTML,但下面是剩下的部分:

代码语言:javascript
复制
var current = 0; 

var banners = new Array();
banners[0]=;
banners[1]=;
banners[2]=;
banners[3]=;

var myTimeout = setInterval("rotater()",10000);

function rotater() {
    document.getElementById("placeholderlayer").innerHTML=banners[current];
    if(current==banners.length-1){  
        current = 1;
    }else{
        current += 1;
    }
 }

window.onload = rotater();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-30 07:58:09

代码语言:javascript
复制
window.onload = rotater;

是正确的语法。你不会想调用这个函数的。然而,防弹解决方案是这样的:

代码语言:javascript
复制
onload = function() {
    rotater();
    window.myTimeout = setInterval(rotater, 10000); // Never pass a string to `setInterval`.
};

提示™:不要使用new Array(),使用数组™。例如,如下所示:

代码语言:javascript
复制
var arr = new Array();
arr[0] = 'Hello';
arr[1] = 'world!';

应该写成:

代码语言:javascript
复制
var arr = ['Hello', 'world!'];
票数 3
EN

Stack Overflow用户

发布于 2012-07-30 10:30:32

这只是一个评论:

而不是:

代码语言:javascript
复制
if(current==banners.length-1) {
   current = 1; 

} else {
   current += 1;
} 

您可以执行以下操作:

代码语言:javascript
复制
current = ++current % banners.length;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11713992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档