setInterval delays

setInterval delays

本文关键字:delays setInterval      更新时间:2024-05-28

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

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();
window.onload = rotater;

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

onload = function() {
    rotater();
    window.myTimeout = setInterval(rotater, 10000); // Never pass a string to `setInterval`.
};

ProTip™:不要使用new Array(),请使用数组文字。例如:

var arr = new Array();
arr[0] = 'Hello';
arr[1] = 'world!';

应写成:

var arr = ['Hello', 'world!'];

只是一个注释:

代替:

if(current==banners.length-1) {
   current = 1; 
} else {
   current += 1;
} 

你可以做:

current = ++current % banners.length;