我目前正在制作一个计时器/秒表,如果计时器达到 5 分钟,那么我会尝试将背景颜色更改为绿色,当计时器达到 10 分钟时,我希望它更改为蓝色等。 ..
这是代码
let seconds = 0;
let minutes = 0;
let hours = 0;
let displaySeconds = 0;
let displayMinutes = 0;
let displayHours = 0;
let interval = null;
let status = "stopped";
//Stopwatch function
function stopWatch(){
seconds++;
if(seconds / 60 === 1){
seconds = 0;
minutes++;
if(minutes / 60 === 1){
minutes = 0;
hours++;
}
}
if(seconds < 10){
displaySeconds = "0" + seconds.toString();
}
else{
displaySeconds = seconds;
}
if(minutes < 10){
displayMinutes = "0" + minutes.toString();
}
else{
displayMinutes = minutes;
}
if(hours < 10){
displayHours = "0" + hours.toString();
}
else{
displayHours = hours;
}
document.getElementById("display").innerHTML = displayHours + ":" + displayMinutes + ":" + displaySeconds;
}
function startStop(){
if(status === "stopped"){
interval = window.setInterval(stopWatch, 1000);
document.getElementById("startStop").innerHTML = "Stop";
status = "started";
}
else{
window.clearInterval(interval);
document.getElementById("startStop").innerHTML = "Start";
status = "stopped";
}
}
//Function to reset stopwatch
function reset(){
window.clearInterval(interval);
seconds = 0;
minutes = 0;
hours = 0;
document.getElementById("display").innerHTML = "00:00:00";
document.getElementById("startStop").innerHTML = "Start";
}
function changeColor(){
if (seconds === 300){
document.change.bgColor = "green";
}
else if (seconds === 600){
document.change.bgColor = "yellow";
}
else if (seconds === 900){
document.change.bgColor = "red";
}
}
正如你所看到的,我已经添加了更改颜色的功能,但不幸的是,当我尝试时,什么也没发生,我正在尝试找出可能的错误,如果你有任何想法,请告诉我。
最佳答案
if(seconds / 60 === 1){
seconds = 0;
minutes++;
if(minutes / 60 === 1){
minutes = 0;
hours++;
}
}
如果秒数达到 60,您已将秒数设置为 0。因此,它永远不会达到 300。
并且 document.change.bgColor
应该是 document.body.style.backgroundColor
希望这能解决
关于javascript - 当计时器分钟达到某个目标时,如何更改页面的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60109954/