-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
67 lines (58 loc) · 1.92 KB
/
script.js
File metadata and controls
67 lines (58 loc) · 1.92 KB
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
let timer;
let isRunning = false;
let startTime;
let elapsedTime = 0;
let laps = [];
function startStop() {
if (isRunning) {
clearInterval(timer);
document.getElementById("startStopBtn").innerText = "Start";
} else {
startTime = Date.now() - elapsedTime;
timer = setInterval(updateDisplay, 10);
document.getElementById("startStopBtn").innerText = "Stop";
}
isRunning = !isRunning;
}
function lap() {
if (isRunning) {
const lapTime = Date.now() - startTime;
laps.push(lapTime);
displayLaps();
}
}
function reset() {
clearInterval(timer);
document.getElementById("display").innerText = "00:00:00.000";
document.getElementById("startStopBtn").innerText = "Start";
laps = [];
elapsedTime = 0; // Reset elapsed time to zero
displayLaps();
}
function updateDisplay() {
const currentTime = Date.now();
elapsedTime = currentTime - startTime;
const formattedTime = formatTime(elapsedTime);
document.getElementById("display").innerText = formattedTime;
}
function formatTime(time) {
const hours = Math.floor(time / 3600000);
const minutes = Math.floor((time % 3600000) / 60000);
const seconds = Math.floor((time % 60000) / 1000);
const milliseconds = time % 1000;
return (
(hours < 10 ? "0" : "") + hours + ":" +
(minutes < 10 ? "0" : "") + minutes + ":" +
(seconds < 10 ? "0" : "") + seconds + "." +
(milliseconds < 10 ? "00" : (milliseconds < 100 ? "0" : "")) + milliseconds
);
}
function displayLaps() {
const lapsContainer = document.getElementById("laps");
lapsContainer.innerHTML = "";
laps.forEach((lap, index) => {
const lapItem = document.createElement("div");
lapItem.innerText = `Lap ${index + 1}: ${formatTime(lap)}`;
lapsContainer.appendChild(lapItem);
});
}