Javascript 使用 settimeout 更改背景颜色
Javascript change background color using settimeout
我正在设计一个鱼缸。页面的整个背景是水。我想设置一个函数,在 5000 毫秒后将水从蓝色更改为棕色,然后暂停。然后,用户将单击一个按钮以"清洁水箱",这将重置背景更改功能。
我能找到的唯一解决方案是继续将背景从蓝色更改为绿色的循环。
var intPgColorIndex = 0;
var arrPgColor = new Array("#999966", "#00ffff" );
function SetPgColor()
{
var PgColor;
intPgColorIndex++;
if (intPgColorIndex >= arrPgColor.length)
{
intPgColorIndex = 0;
}
PgColor = arrPgColor[intPgColorIndex];
if (PgColor = "#999966" ) {
document.body.style.backgroundColor = PgColor;
setTimeout("SetPgColor()", 5000);
}
};
阻止代码按预期运行的唯一部分是使用=
而不是==
来比较值。
但是,你的代码又丑又糟糕,所以这里有一个更好的版本:
setTimeout(function dirty() {
document.body.style.backgroundColor = "#996";
var btn = document.body.appendChild(document.createElement('button'));
btn.appendChild(document.createTextNode("Clean the tank"));
btn.onclick = function clean() {
btn.parentNode.removeChild(btn);
document.body.style.backgroundColor = "#0ff";
setTimeout(dirty,5000);
};
},5000);
function clean() {
clearTimeout(dirt);
var dirt = setTimeout(dirt, 5000)
//set color to blue
}
function dirt() {
//set color to brown
}
在程序开始时调用 clean,并在用户单击按钮或其他内容时执行它。它将等待 5 秒(有点短的 imo),然后运行 dirt 功能。在用户单击按钮之前,不会发生任何事情,此时水箱被清洁,然后再次等待 5 秒钟,然后再次变脏。简单、干净、有效。:D
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用jquery更改html中的背景颜色
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- JS幻灯片与CSS背景颜色变化
- DT数据表背景颜色为黑色,但仍有悬停和选择颜色
- Javascript通过列表项的函数和css来更改背景颜色
- Javascript没有从数组中选择背景颜色
- 使用圆中的数组更改背景颜色项目
- 如何用jquery动画改变背景颜色,就像一个过渡
- 使用jquery交换并保存背景颜色
- j查询如何设置/取消设置下拉菜单的背景颜色
- 使用angularjs根据时间更改背景颜色
- 设置Dojo量表的背景颜色
- javascript样式的背景颜色在设置时闪烁.ASP.NET
- 使用javascript更改任意文本的背景颜色
- 在用Javascript更改背景颜色后:hover don'不要改变颜色
- 图像内部的透明背景颜色不受影响
- jQuery mobile-动态更改ui页面背景颜色
- 切换按钮的背景颜色
- JavaScript更改类的背景颜色