当一个倒计时计时器被激活时改变背景颜色
Changing Background Color when a countdown timer is activated
所以我想弄清楚如何改变一个页面的背景颜色后,一个倒计时计时器已被激活。例如,我下面的代码显示了一个5点计时器,在选择"开始"按钮后开始计数。当你按"停止"时,计时器明显停止,当你选择重置时,计时器重置为5:00并暂停。我把javascript代码从我在网上找到的两个代码(刚刚开始javascript)修补在一起,它的工作,但我现在正试图找出一种方法来改变基于倒计时定时器的时间页面的背景颜色。
所以在300秒到90秒之间颜色应该是"GREEN"在90-30之间,颜色应该变成"黄色"。30 - 0颜色改为"RED"
任何反馈,你可以给我我的代码和如何完成上述任务将非常感激。我刚刚开始编码,所以如果有一个正确的方式做javascript让我知道。
下面是我的倒计时定时器(javascript)的代码:
var seconds = 300;
var t;
function secondPassed() {
var minutes = Math.round((seconds - 30) / 60);
var remainingSeconds = seconds % 60;
if (remainingSeconds < 10) {
remainingSeconds = "0" + remainingSeconds;
}
document.getElementById('countdown').innerHTML = minutes + ":" + remainingSeconds;
}
function countdown() {
// starts countdown
secondPassed();
if (seconds == 0) {} else {
seconds--;
t = setTimeout("countdown()", 1000);
}
}
function cdpause() {
// pauses countdown
clearTimeout(t);
};
function cdreset() {
// resets countdown
cdpause();
secondPassed();
};
@charset "UTF-8";
/* CSS Document*/
#countdown {
font-size: 2em;
background-color: white;
}
<html>
<head>
<link rel="stylesheet" type="text/css" href="newTicket2.0.css">
<script src="Timer.js">
</script>
</head>
<body onload="cdreset()">
<span id="countdown" class="timer"></span>
<input type="button" value="Start" onclick="countdown()">
<input type="button" value="Stop" onclick="cdpause()">
<input type="button" value="Reset" onclick="cdreset(seconds = 300)">
</body>
</html>
我在想,为了改变背景颜色的代码应该是这样的:
function changeColor() {
if (seconds == 300) {
document.change.bgColor = "green";
} else if (seconds == 90) {
document.change.bgColor = "yellow";
} else(seconds == 30) {
`enter code here`
document.change.bgColor = "red";
}
}
然而,我还没能想出如何改变任何东西而不搞乱原来的产品。颜色的变化应该链接到按钮的点击。因此,一旦按下"开始"按钮,颜色应该会根据上述参数变化并继续变化。一旦计数器达到零,它应该保持红色,直到重置按钮被按下。一旦按下"重置"按钮,颜色就会变回绿色,然后变成黄色,然后变成红色。所以它应该和定时器一起工作,我只是不能让它工作。
要更改页面主体的背景,请使用以下行:
document.body.style.background = colorString;
如果你有一个div或其他元素占用整个背景,确保div有一个唯一的id,并使用以下行:
document.getElementById("theIdOfYourElement").style.background = colorString;
其中"colorString"是颜色的名称,或者是你想要的背景的十六进制/rgb值,格式化为字符串。
示例:"red",或"#FF000",或"rgb(255,0,0) "
你的函数changeColor()看起来真的很好,但我可能会在每个if语句中使用间隔参数,像这样:
function changeColor() {
if (seconds <= 300 && seconds > 90) {
document.body.style.background = "green";
}
else if (seconds <= 90 && seconds > 30) {
document.body.style.background = "yellow";
}
else {
document.body.style.background = "red";
}
如果我看你的代码是正确的,你可能会想要调用changeColor()在倒计时()函数中,你是递减秒。
就Javascript技巧而言,我认为你的代码看起来非常适合初学者——你显然有编码经验。我唯一的建议是,与其在函数countdown()中使用空if语句后跟else语句,不如尝试使用not(!)操作符:
if (seconds != 0) {
seconds--;
t = setTimeout("countdown()", 1000);
changeColor();
}
使用
文档。getElementById('[你的元素id]').style.background="red";
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 激活chrome上的chrome.notifications对象
- 提示使用服务器端事件处理程序激活JavaScript
- 如何从外部页面激活非默认引导选项卡
- 选项卡侦听器未被来自后台脚本的消息激活
- jQuery:当屏幕大小改变时,如何更改默认图像和悬停图像
- 基于localStorage的Meteor激活模板
- 为什么使用immutableJS我的状态没有改变
- JavaScript改变了双方的显示风格
- 如何通过按键激活按钮应用CSS效果
- 改变所有<td>为特定的桌子点击颜色
- 在BoilerplateJS浏览器加载所有脚本(在其他模块中),而不考虑激活的模块
- 变量dos'即使我可以返回更新后的值,也不会改变
- 我必须点击两次才能激活任何按钮操作(离子/角度)
- 离子改变侧面菜单图标悬停和激活
- 对象的属性在改变时激活功能
- 通过改变z-index用Javascript激活其他表的表格单元格
- Jquery在下拉列表/选择项上激活改变
- JQuery选项卡,不能改变激活选项卡
- 当一个倒计时计时器被激活时改变背景颜色