- タイマーは、ページのロードに0が表示されます。
- スペースを押すと、タイマーがカウントアップを開始します。
- スペースをもう一度押すと、タイマーが停止して時刻が表示されます。 再び押された空間の際
- 、タイマーがリセットされ、開始、
などなど。私の研究から、これを行う最良の方法は、setInterval
とdocument.onkeypress
です。ここに私のコードは、これまでのところです:
index.htmlを
<!DOCTYPE html>
<html>
<head>
<script src="main.js">
</script>
</head>
<body>
<div id="timer">
0
</div>
</body>
</html>
main.js
var running = false;
document.onkeypress = function(e) {
if (e.keyCode === 0 || e.keyCode === 32) {
if (running) {
clearInterval(refresh);
} else {
var startTime = new Date().getTime();
var refresh = window.setInterval(function() {
document.getElementById('timer').innerHTML = new Date().getTime() - startTime;
}, 100);
}
}
};
このコードは、タイマー開始のため正常に動作しますが、動作していないよう停止します。それは元のsetInterval
を終了させることはないので、3回目のスペースプレスは同時にもう一度setInterval
を開始します。
複数のガイド私が見たところでは、clearInterval(refresh)
は間隔を停止する必要がありますが、それは当てはまりません。
これを修正するには何が必要ですか?
イベントハンドラの外部に移動します。 –