0
ミリ秒、秒、分をカウントできるストップウォッチをJavaScriptで作成したいと考えています。これは私が持っているものである:(あなたがスペースを押してタイマーを停止することができます)JavaScriptのストップウォッチは通常の時間より遅い
var counter = document.getElementsByTagName('h1')[0];
var miliseconds = 0;
var seconds = 0;
var minutes = 0;
function Add() {
miliseconds++;
if (miliseconds >= 99) {
miliseconds = 0;
seconds++;
if (seconds >= 59) {
seconds = 0;
minutes++;
}
}
counter.textContent = (minutes ? (minutes > 9 ? minutes : "0" + minutes) : "00") + ":" +
(seconds ? (seconds > 9 ? seconds : "0" + seconds) : "00") + ":" +
(miliseconds ? (miliseconds > 9 ? miliseconds : "0" + miliseconds) : "00");
Timer();
}
function Timer() {
t = setTimeout(Add, 10);
}
Timer();
document.addEventListener("keypress", function(e) {
if (e.keyCode === 32) {
clearTimeout(t);
}
});
<h1 id="counter">00:00:00</h1>
問題は、私はそれが比較するとことを意味し、適切な速度で行かないように見えるということですそれ以外のタイマーでは、徐々にそれらよりも遅くなります(つまり、タイマーのカウント速度が時間の経過とともに減速する)。だから突然5秒差があり、7秒差などになります。 ご協力いただければ幸いです。
は、この質問のヘルプへの答えを行います。https://stackoverflow.com/questions/22975537/js-timer-is-running-slowを – Nick
のsetTimeoutための間隔が最小である、あなたがのために許可する必要がコール間で関数が実行される時間はすべて累積的です。 – RobG
はい、ありがとうございます –