我想制作一个简单的背景,每1400毫秒改变彩虹的颜色,我喜欢this。这是代码:
function onload() {
var color = ["red", "orange", "yellow", "green", "blue", "indigo", "violet"];
var body = document.getElementById('body');
var i = 0;
function rainbow() {
if(i == color.length) {i = 0;};
body.style.backgroundColor = color[i++];
setTimeout(rainbow, 1400);
};
rainbow();
};
onload();
但是在运行此功能6049毫秒后,我希望背景以50毫秒而不是1400毫秒的间隔改变。我该怎么做?
答案 0 :(得分:2)
你可以像这样改变另一个计时器的间隔。
function onload() {
var color = ["red", "orange", "yellow", "green", "blue", "indigo", "violet"];
var body = document.getElementById('body');
var i = 0;
var interval = 1400;
function rainbow() {
if (i == color.length) {
i = 0;
};
body.style.backgroundColor = color[i++];
console.log("Interval is: " + interval);
setTimeout(rainbow, interval);
};
var intervalTimer = setTimeout(function() {
interval = 50;
clearTimeout(intervalTimer);
}, 6049);
rainbow();
};
onload();

<body id='body'>
</body>
&#13;
答案 1 :(得分:2)
由于初始间隔为1400毫秒,并且您希望在6049毫秒后更改,这意味着在第5和第6个颜色更改(0毫秒,1400毫秒,2800毫秒,4200毫秒,5600毫秒,7000毫秒)之间将发生更改为50毫秒。这意味着我们可以使用(i < 6 ? 1400 : 50)
索引将function onload() {
var color = ["red", "orange", "yellow", "green", "blue", "indigo", "violet"];
var body = document.getElementById('body');
var i = 0;
function rainbow() {
document.body.style.backgroundColor = color[i++ % color.length];
setTimeout(rainbow, (i < 6 ? 1400 : 50));
};
rainbow();
};
onload();
间隔设置为filezilla.exe -d ftp://user:pass@ftp.myserver.com/folder/* "c:\downloads\" /overwrite /close
。
filezilla.exe -u "c:\temp\samplefile.exe" ftp://user:pass@ftp.myserver.com/folder /overwrite /close