-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Expand file tree
/
Copy pathindex.js
More file actions
113 lines (90 loc) · 3.01 KB
/
index.js
File metadata and controls
113 lines (90 loc) · 3.01 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
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
101
102
103
104
105
106
107
108
109
110
111
112
113
const chronometer = new Chronometer();
// get the buttons:
const btnLeftElement = document.getElementById('btnLeft');
const btnRightElement = document.getElementById('btnRight');
// get the DOM elements that will serve us to display the time:
const minDecElement = document.getElementById('minDec');
const minUniElement = document.getElementById('minUni');
const secDecElement = document.getElementById('secDec');
const secUniElement = document.getElementById('secUni');
const milDecElement = document.getElementById('milDec');
const milUniElement = document.getElementById('milUni');
const splitsElement = document.getElementById('splits');
function printTime() {
return{
mainDisplay: () => {
printMinutes();
printSeconds();
},
millisDisplay: () => {
printMilliseconds();
}
}
}
function printMinutes() {
const minutes = chronometer.getMinutes();
const minutesToString = chronometer.computeTwoDigitNumber(minutes);
minDecElement.textContent = minutesToString[ 0 ];
minUniElement.textContent = minutesToString[ 1 ];
}
function printSeconds() {
const seconds = chronometer.getSeconds();
const secondsToString = chronometer.computeTwoDigitNumber(seconds);
secDecElement.textContent = secondsToString[ 0 ];
secUniElement.textContent = secondsToString[ 1 ];
}
// ==> BONUS
function printMilliseconds() {
const milliseconds = chronometer.getMilliseconds();
const millisecondsToString = chronometer.computeTwoDigitNumber(milliseconds);
milDecElement.textContent = millisecondsToString[ 0 ];
milUniElement.textContent = millisecondsToString[ 1 ];
}
function printSplit(listItem) {
splitsElement.append(listItem)
}
function clearSplits() {
splitsElement.innerHTML = '';
}
function setStopBtn() {
chronometer.stop();
btnLeftElement.textContent = "START"
btnLeftElement.className = "btn start";
btnRightElement.textContent = "RESET";
btnRightElement.className = "btn reset";
}
function setSplitBtn() {
const split= chronometer.split()
const listItem=document.createElement('li')
listItem.className="list-item"
listItem.textContent=split;
printSplit(listItem);
}
function setStartBtn() {
chronometer.start(printTime); // pasamos el callback para que actualize UI del timer
btnLeftElement.textContent = "STOP";
btnLeftElement.className = "btn stop";
btnRightElement.textContent = "SPLIT";
btnRightElement.className = "btn split";
}
function setResetBtn() {
// resetea el crhono
chronometer.reset();
// resetea los splits
clearSplits();
// resetea la UI
minDecElement.textContent = '0';
minUniElement.textContent = '0';
secDecElement.textContent = '0';
secUniElement.textContent = '0';
milDecElement.textContent = '0';
milUniElement.textContent = '0';
}
// Start/Stop Button
btnLeftElement.addEventListener('click', () => {
(btnLeftElement.textContent === "START") ? setStartBtn() : setStopBtn();
});
// Reset/Split Button
btnRightElement.addEventListener('click', () => {
(btnRightElement.textContent === "RESET") ? setResetBtn() : setSplitBtn();
});