-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
100 lines (69 loc) · 2.23 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
const timerDisplay = document.querySelector('.timer-display');
const toggleButton = document.querySelector('.toggle-timer');
const resetButton = document.querySelector('.reset-timer');
const maxTime = 35999;
let runningTimer;
let timerStatus = false;
function displayTime(decSeconds) {
const minutes = Math.floor(decSeconds / 600);
const restDecSecs = (decSeconds % 600)
const seconds = Math.floor(restDecSecs / 10);
const deciSeconds = restDecSecs % 10;
const displayMins = `${minutes < 10 ? '0' : ''}${minutes}`;
const displaySecs = `${seconds < 10 ? '0' : ''}${seconds}`;
const displayDecSecs = `${deciSeconds}`;
const display = `${displayMins}:${displaySecs}.${displayDecSecs}`;
timerDisplay.textContent = display;
displayBinary('mt', (Math.floor(minutes / 10)));
displayBinary('mo', (minutes % 10));
displayBinary('st', (Math.floor(seconds / 10)));
displayBinary('so', (seconds % 10));
displayBinary('d', deciSeconds);
};
function runTimer() {
clearInterval(runningTimer);
let timer = 0;
// start interval
runningTimer = setInterval(() => {
const runTimer = timer++;
// if time is up (reached max of 59min59sec) stop timer
if(runTimer > maxTime) {
clearInterval(runningTimer);
return;
}
// display timer
displayTime(timer);
}, 100);
};
function displayBinary(type, digit) {
for (let i = 8; i >= 1; i = i/2) {
let binary = Math.floor( digit / i);
binary ?
document.getElementById(`${type}${i}`).classList.add('active') :
document.getElementById(`${type}${i}`).classList.remove('active');
digit = digit % i;
}
};
function toggleTimer() {
// stops timer
if (timerStatus) {
toggleButton.textContent = 'Start';
toggleButton.setAttribute('disabled', true);
// stop running timer
clearInterval(runningTimer);
// starts timer
} else if (!timerStatus){
runTimer();
toggleButton.textContent = 'Stop';
}
timerStatus = !timerStatus;
};
function resetTimer() {
toggleButton.textContent = 'Start';
toggleButton.removeAttribute('disabled');
timerStatus = false;
displayTime(0);
clearInterval(runningTimer);
};
toggleButton.addEventListener('click', toggleTimer);
resetButton.addEventListener('click', resetTimer);