【发布时间】:2017-03-19 02:29:53
【问题描述】:
我正在尝试学习如何使用 Javascript 和 CSS 动态更改浏览器中的显示。一切都很顺利,直到我尝试循环更改。代码触发一次并且工作正常,但是当我尝试循环它时,我尝试的每个循环都会冻结浏览器。我显然是 JavaScript 的新手,并且做错了一些事情。问题代码如下:
function changes()
{
var x = 0;
do
{
setTimeout(timerRed, 3000);
setTimeout(timerWhite, 6000);
setTimeout(timerBlue, 9000);
setTimeout(timerBlack, 12000);
setTimeout(timerGreen, 18000);
setTimeout(timerOrange, 21000);
setTimeout(timerClear(x), 24000);
} while (x >= 0);
}
我将跳过 timerRed() 等...为了节省空间并且因为 CSS 更改工作正常。在循环结束时,我试试这个:
function timerClear(x)
{
clearTimeout(x);
x = 0;
}
然后冻结浏览器。那么,循环这些函数的正确方法是什么。
谢谢
PS:换句话说,我想无限循环或循环颜色函数,而不锁定浏览器。
【问题讨论】:
-
无限循环... x 永远不会
-
我查看了其他循环代码,但不适用于我的情况。
-
但这就是问题所在,它应该是一个无限循环。我希望颜色循环一直持续到浏览器关闭。那么如何在不锁定浏览器的情况下循环呢?
-
setInterval(changes, 24000)。 (并失去循环,如前所述。)
标签: javascript css loops timer