javascript - 倒数计时器加快

标签 javascript

我有一个每秒倒计时的计时器。计时器用于游戏:用户最多有 15 秒的时间 回答问题。假设游戏有 10 个问题。计时器对于第一个问题非常有效 ,但是随后,每个问题的速度都会越来越快。任何建议都非常受欢迎。谢谢!

代码在这里:

var timeInSecs;
var ticker;
function startTimer(secs) {
    timeInSecs = secs;
    ticker = setInterval("tick()", 1000); // every second
}
function tick() {
    var seconds = timeInSecs;
    if (seconds > 0) {
        timeInSecs--;
    }
    else if (seconds == 0) {
        document.getElementById("timeExpired").innerHTML = "Time expired!";
    }
    document.getElementById("countDown").innerHTML = seconds;
}
function myStopFunction() {
    clearInterval(ticker);
}​

最佳答案

else if(seconds==0)
        {
            // you should stop the timer here, and clear the interval
            myStopFunction();
            document.getElementById("timeExpired").innerHTML = "Time expired!";
        }

编辑:旁注

最好将函数 tick 传递给间隔,而不是要计算的字符串。使用 eval 通常是一件危险的事情,而且效率较低。

setInterval(tick, 1000)

编辑:另一个旁注

您可以更加简洁地编写刻度函数(并且无需额外的变量)

    function tick(){
        document.getElementById("countDown").innerHTML = timeInSecs;
        if(! timeInSecs--){
            myStopFunction()                
            document.getElementById("timeExpired").innerHTML = "Time expired!";
        }
    }

关于javascript - 倒数计时器加快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12646298/

相关文章:

javascript - ajax 在 IE8 及以上版本中不工作

javascript - Angularjs/js 用于从输入计算 $eval

javascript - 无法获取每个父 div/类中的子 div ID

javascript - 从选择器中删除 keydown 事件不起作用?

javascript - Jquery和动态表行更新,痛苦的性能

javascript - 强制停止java脚本执行函数

javascript - 如何在创建 VueJS 实例之前*加载外部托管 (CDN) JS 库?

javascript - 选择单选输入时修改占位符属性

javascript - 如何使用 Lodash 过滤嵌套数组?

javascript - 如何存储JavaScript文件并在.NET中调用使用Ajax