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