-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
54 lines (45 loc) · 1.9 KB
/
main.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
const digital = {
hours: document.querySelector('.digital-hours'),
minutes: document.querySelector('.digital-minutes'),
seconds: document.querySelector('.digital-seconds')
};
const binary = {
hours: document.querySelector('.binary-hours'),
minutes: document.querySelector('.binary-minutes'),
seconds: document.querySelector('.binary-seconds')
};
const binaryCheck = (totalTime, timeUnit, selector) => {
if (totalTime / timeUnit >= 1) {
selector.querySelector(`.dot-${timeUnit}`).classList.add('active');
return totalTime - timeUnit;
}
return totalTime;
}
const binaryTime = (selector, unitTime) => {
const dots = [...selector.querySelectorAll('.dots')];
const binaryNumbers = [40, 20, 10, 8, 4, 2, 1];
let time = unitTime;
dots.map(dot => dot.classList.remove('active'));
binaryNumbers.map(unit => time = binaryCheck(time, unit, selector));
}
const time = () => {
const now = new Date();
let hours = digitHours = now.getHours();
let minutes = digitMinutes = now.getMinutes();
let seconds = digitSeconds = now.getSeconds();
// Digital timer
digitSeconds < 10 ? digitSeconds = `0${digitSeconds}` : digitSeconds;
digitMinutes < 10 ? digitMinutes = `0${digitMinutes}` : digitMinutes;
digitHours <= 0 ? digitHours = '00' : digitHours;
digital.seconds.innerHTML = `<span class="separator">: </span>${digitSeconds}`;
digital.minutes.innerHTML = `<span class="separator">: </span>${digitMinutes}`;
digital.hours.textContent = digitHours;
const separator = [...document.querySelectorAll('.separator')];
seconds % 2 === 0 ? separator.map(item => item.style.setProperty('opacity', '1')) : separator.map(item => item.style.setProperty('opacity', '0'));
//Binary Timer
binaryTime(binary.hours, hours);
binaryTime(binary.minutes, minutes);
binaryTime(binary.seconds, seconds);
}
time();
setInterval(time, 1000);