这就是我试图做FOR循环内的setInterval?
for (i=1; i<=1000; i+=100) {
setInterval(someFunction, i);
}
我想实现的是,当页面加载对话框将会出现和它的影子会闪动慢,然后快速将停止当i = 1000。 我是新手,迄今为止,我做了this。
这就是我试图做FOR循环内的setInterval?
for (i=1; i<=1000; i+=100) {
setInterval(someFunction, i);
}
我想实现的是,当页面加载对话框将会出现和它的影子会闪动慢,然后快速将停止当i = 1000。 我是新手,迄今为止,我做了this。
阅读是否有可能或不?
是的。假设someFunction
是对函数或包含JavaScript代码的字符串的引用,for循环将按原样“工作”,其中“work”的意思是“不给出语法错误,但几乎肯定不会达到我想象中的真正想要的效果”。
setInterval()
function调用你通过它的函数重复,每次调用之间有一个固定的(受浏览器怪癖)延迟。只要该页面处于打开状态,或者直到您使用clearInterval()
来取消该功能,它都会一直调用该功能。
所以通过在循环中调用setInterval()
您正在设置(在您的情况下)10个独立的时间间隔,所有这些时间间隔都会重复调用您的函数。第一个调用someFunction
的时间间隔为0ms,这比浏览器实际使用的时间要小,所以会被舍入到更多像4ms。第二个间隔将以100ms间隔呼叫someFunction
。第三个以200ms的间隔调用该函数。等等。在你的循环结束后,你的函数每秒会被重复调用的次数比我可以计算的更多。
看起来你真正想要做的事情是拨打someFunction()
10次,每次通话之间延迟100ms。如果是这种情况,则可以在循环中使用setTimeout()
function,因为(每次使用)setTimeout()
都会在指定的延迟后恰好调用您的函数一次。
您不需要将循环中的设置间隔设置为多次运行。
试图通过本教程javascript.info
这恰好也是一个不好的例子。将一串JS代码传递给'setInterval'是20世纪90年代。我认为即使这样很糟糕。我们只是不知道更好。 :P – cHao 2012-03-01 02:27:49
@cHao - 如果返回足够远的话,传递一个字符串是唯一的选择。 – nnnnnn 2012-03-01 02:51:56
对不起,我没有意识到w3schools是如此糟糕的资源。 – user1239299 2012-03-01 03:05:48
太糟糕了。如果您告诉我们什么不起作用以及您得到了哪个错误,我们可能会帮助您。 – 2012-03-01 01:59:57
你的意思是“它没有解决”?如果你在问题中没有提供足够的细节,我们不能提供帮助 - 你需要说明为什么它不起作用;你想要什么样的行为以及你想要做什么样的行为。 – Bojangles 2012-03-01 02:00:18
你想完成什么?它怎么没用? – 2012-03-01 02:00:36