我有一个超时时间间隔,并希望改变hop1和hop2的每个间隔的颜色。在1000ms、900ms、800ms等时间颜色变化。为什么我的代码不能工作?
var interval = 1000;
var change = 1;
function callback() {
interval -= 100;
if (change = 1)
{
mainContent1 = document.getElementById("hop1");
mainContent1.style.backgroundColor = "#FFFF99";
mainContent2 = document.getElementById("hop2");
mainContent2.style.backgroundColor = "#FFFFFF";
change += 1;
}
else if (change = 2)
{
mainContent2 = document.getElementById("hop2");
mainContent2.style.backgroundColor = "#FFFF99";
mainContent1 = document.getElementById("hop1");
mainContent1.style.backgroundColor = "#FFFFFF";
change = 1;
}
setTimeout( callback, interval, change);
}
setTimeout( callback, interval, change);
将代码更改为以下内容,并确保在达到预期间隔后停止调用setTimeout:
var interval = 1000;
var change = 1;
function callback() {
interval -= 100;
if (change == 1)
{
mainContent1 = document.getElementById("hop1");
mainContent1.style.backgroundColor = "#FFFF99";
mainContent2 = document.getElementById("hop2");
mainContent2.style.backgroundColor = "#FFFFFF";
change += 1;
}
else if (change == 2)
{
mainContent2 = document.getElementById("hop2");
mainContent2.style.backgroundColor = "#FFFF99";
mainContent1 = document.getElementById("hop1");
mainContent1.style.backgroundColor = "#FFFFFF";
change = 1;
}
setTimeout( callback, interval);
}
setTimeout( callback, interval);