-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
47 lines (35 loc) · 1.08 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
const audio = document.querySelector("audio");
const slider = document.querySelector(".slider input")
const play = document.querySelector("input#play")
const leftCircle = document.querySelector("#left-circle")
const rightCircle = document.querySelector("#right-circle")
let degrees = 0
let speed = 1
let interval;
function addDegrees(x) {
degrees = (degrees + x)
}
play.addEventListener('change', (e) => {
let action, buttonName
if (e.target.checked) {
action = 'play'
buttonName = 'pause'
interval = setInterval(() => {
leftCircle.style.setProperty('transform', `rotate(${degrees}deg)`)
rightCircle.style.setProperty('transform', `rotate(${degrees}deg)`)
degrees += speed * 10
}, 50)
} else {
action = 'pause'
buttonName = 'play'
clearInterval(interval)
}
const label = e.target.parentElement
label.querySelector('p').innerHTML = buttonName
label.querySelector('i').className = `fas fa-${buttonName}`
audio[action]()
})
slider.addEventListener("input", (e) => {
speed = parseFloat(e.target.value)
audio.playbackRate = speed;
});