Javascript 秒表不是从零开始的

标签 javascript onclick stopwatch

我这里有一个基本的秒表,但问题是我认为它在页面加载时开始计数,而不是在单击开始按钮时开始计数。同样,当您重置并重新开始时,同样的问题也会发生。

<form>
    <input type="button" value="Start count!" onclick="doTimer()" />
    <input type="text" id="txt" />
    <input type="button" value="Stop count!" onclick="stopCount()" />
    <input type="button" value="Reset!" onclick="resetCount()" />
</form>

<script type="text/javascript">

var start = new Date().getTime(); 
var elapsed = '0.0'; 
var t;
var timer_is_on=0;

function timedCount() {
    var time = new Date().getTime() - start;
    elapsed = Math.floor(time / 100) / 10; 
    if(Math.round(elapsed) == elapsed) { elapsed += '.0'; } 
    document.getElementById('txt').value=elapsed;
    t=setTimeout("timedCount()",50);
}

function doTimer() {
    if (!timer_is_on) {
        timer_is_on=1;
        timedCount();
    }
}

function stopCount() {
    clearTimeout(t);
    timer_is_on=0;
}

function resetCount() {
    document.getElementById('txt').value='0.0';
    var elapsed = '0.0';
}


</script>

我已经尝试定义开始按钮的开始变量 onclick,但到目前为止没有取得多大成功。非常感谢任何帮助。

最佳答案

您必须在 doTimer() 中包含另一个重置:

function doTimer() {
    if (!timer_is_on) {
        start = new Date().getTime(); 
        timer_is_on=1;
        timedCount();
    }
}

查看运行版本here .

关于Javascript 秒表不是从零开始的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7547378/

相关文章:

javascript - 带断点的秒表加起来不正确

服务中的 Android 计时器

java - Spring 秒表并发

javascript - Object.defineProperty 覆盖只读属性

javascript - 在 Chrome 扩展中包含谷歌分析

javascript - 将 css 应用于具有 onclick 事件的类

javascript - 单击拇指可显示大图

Javascript 最大最小平均

Javascript 搜索和替换包含方括号的字符序列

javascript - 如何使用 return() 中定义的参数调用 render() 中的函数