0

嗨,我使用 setinterval 函数来显示一些图像。我在数组中分配 img src,然后通过数组显示所有图像。但问题是我使用随机选项在每个间隔中选择和显示 img。

var set = setInterval(function(){test();},2000);

function test() {
  var img = new Array("red","green","blue","orange","yellow","balck");
  var src = img[Math.floor(Math.random()*img.length)];
  $(body).append(src);
}

上面的代码是我尝试过的示例

现在我想按升序排列,就像数组中的什么顺序一样,我应该能够看到图像。

for loop我在里面想过,setInterval但这将显示每个间隔中的所有图像。我不想那样。我想按升序获取每个间隔的每个图像。

将任何变量设置为 0 并在最后增加它也没有用,因为一旦间隔结束,它将再次开始另一个执行,在函数开始时设置为 0。

是否有可能计算已传入的间隔数setInterval,通过该 ecah 图像可以轻松显示

有什么想法可以做到这一点吗?

4

2 回答 2

0

您可以使用全局variable并递增它来呈现递增index的数组。当索引达到数组的长度时,您可以将其设置zero为使其循环。

var set = setInterval(function(){test();},2000);
currentIndex = 0;
function test() {
  var img = new Array("red","green","blue","orange","yellow","balck");
  if(currentIndex == img.length) 
      currentIndex = 0;
  var src = img[currentIndex++];
  $(body).append(src);
}
于 2013-10-23T10:03:57.277 回答
0

您可以在脚本块中的函数外部声明一个 var ,它将充当全局变量,然后您可以在函数中设置它并在每次调用后递增它,直到达到数组的限制,一旦达到限制重置为 0 .

于 2013-10-23T10:05:33.087 回答