-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
50 lines (44 loc) · 1.56 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
const time = document.getElementById('time');
const startButton = document.getElementById('start');
const stopButton = document.getElementById('stop');
const resetButton = document.getElementById('reset');
// 開始時間
let startTime;
// 停止時間
let stopTime = 0;
// タイムアウトID
let timeoutID;
// 時間を表示する関数
function displayTime() {
const currentTime = new Date(Date.now() - startTime + stopTime);
const h = String(currentTime.getHours()-9).padStart(2, '0');
const m = String(currentTime.getMinutes()).padStart(2, '0');
const s = String(currentTime.getSeconds()).padStart(2, '0');
const ms = String(currentTime.getMilliseconds()).padStart(3, '0');
time.textContent = `${h}:${m}:${s}.${ms}`;
timeoutID = setTimeout(displayTime, 10);
}
// スタートボタンがクリックされたら時間を進める
startButton.addEventListener('click', () => {
startButton.disabled = true;
stopButton.disabled = false;
resetButton.disabled = true;
startTime = Date.now();
displayTime();
});
// ストップボタンがクリックされたら時間を止める
stopButton.addEventListener('click', function() {
startButton.disabled = false;
stopButton.disabled = true;
resetButton.disabled = false;
clearTimeout(timeoutID);
stopTime += (Date.now() - startTime);
});
// リセットボタンがクリックされたら時間を0に戻す
resetButton.addEventListener('click', function() {
startButton.disabled = false;
stopButton.disabled = true;
resetButton.disabled = true;
time.textContent = '00:00:00.000';
stopTime = 0;
});