javascript - 当计时器分钟达到某个目标时,如何更改页面的背景颜色?

标签 javascript html

我目前正在制作一个计时器/秒表,如果计时器达到 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/

相关文章:

javascript - 使用文档点击功能事件后菜单不显示

python - Mechanize - 无需单击提交按钮即可提交表单

html - 如何制作一个唯一的图像按钮?

javascript - 中止 Meteor.js 中的链接重定向

javascript - 如何像 Handlebars 一样将 Bootstrap CSS 应用到 Ractive.js 模板中?

javascript - 将两个对象数组与其值进行比较,单元测试

javascript - 使用弹出消息销毁 session

javascript - 带有 Knockout 的 HTML 实体

javascript - 在 Javascript 中,直接后跟空花括号的变量是什么意思?

javascript - 外部json文件中的对象应放置在同名的html div中