FOR循环中的setInterval?

时间:2012-03-01 01:57:55

标签: javascript jquery for-loop setinterval

这就是我试图做的事情

for ( i=1; i<=1000; i+=100) {
 setInterval(someFunction, i);
}

我想要实现的是,当页面加载时,框会出现,它的阴影会慢慢闪烁,然后快速闪烁,并在i = 1000时停止。 我是新手,到目前为止,我做过this

2 个答案:

答案 0 :(得分:2)

有可能吗?

是。假设someFunction是对函数的引用或包含JavaScript代码的字符串,你的for循环将“按原样”工作,其中“work”我的意思是“不给出语法错误,但几乎肯定没有实现我的想象你真的很想“。

setInterval() function调用您重复传递的功能,每次调用之间都有固定的(受浏览器怪癖)延迟。只要页面打开或者使用clearInterval()取消它,它就会一直调用该函数。

因此,通过在循环中调用setInterval(),您正在设置(在您的情况下)十个独立的时间间隔,所有这些时间间隔都会重复调用您的函数。第一个以0毫秒的间隔调用someFunction,这比浏览器实际使用的小,因此将向上舍入到更接近4毫秒。第二个间隔将以100毫秒的间隔调用someFunction。第三个以200毫秒的间隔调用该函数。等等。在你的循环结束后,你的函数每秒会被重复调用多次,而不是我可以计算的。

你真正想做的事情似乎是在每次通话之间拨打someFunction() 10次,延迟时间为100毫秒。如果是这种情况,您可以在循环中使用setTimeout() function,因为(每次使用)setTimeout()将在指定的延迟后调用您的函数一次。

答案 1 :(得分:1)

您不需要在循环中设置间隔以便多次运行它。

尝试在javascript.info

上阅读本教程