-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathnixie.js
32 lines (27 loc) · 987 Bytes
/
nixie.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
const hours = document.querySelector('.hours')
const mins = document.querySelector('.mins')
const secs = document.querySelector('.secs')
function getTime() {
const now = new Date()
return {
hours: now.getHours() <= 9 ? `0${now.getHours()}` : `${now.getHours()}`,
mins: now.getMinutes() <= 9 ? `0${now.getMinutes()}` : `${now.getMinutes()}`,
secs: now.getSeconds() <= 9 ? `0${now.getSeconds()}` : `${now.getSeconds()}`
}
}
function setDigits(section, digit) {
const tens = [...section.children[0].children]
const ones = [...section.children[1].children]
tens.forEach(number => number.classList.remove('active'))
tens[digit[0]].classList.add('active')
ones.forEach(number => number.classList.remove('active'))
ones[digit[1]].classList.add('active')
}
function tick() {
const time = getTime()
setDigits(hours, time.hours)
setDigits(mins, time.mins)
setDigits(secs, time.secs)
}
tick()
setInterval(tick, 1000)