-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
40 lines (33 loc) · 1.05 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
const nums = document.querySelectorAll(".nums span");
const counter = document.querySelector(".counter");
const finalMessage = document.querySelector(".final");
const replay = document.querySelector("#replay");
runAnimation();
function resetDOM() {
counter.classList.remove("hide");
finalMessage.classList.remove("show");
nums.forEach((num) => {
num.classList.value = "";
});
nums[0].classList.add("in");
}
function runAnimation() {
nums.forEach((num, idx) => {
const nextToLast = nums.length - 1;
num.addEventListener("animationend", (e) => {
if (e.animationName === "goIn" && idx !== nextToLast) {
num.classList.remove("in");
num.classList.add("out");
} else if (e.animationName === "goOut" && num.nextElementSibling) {
num.nextElementSibling.classList.add("in");
} else {
counter.classList.add("hide");
finalMessage.classList.add("show");
}
});
});
}
replay.addEventListener("click", () => {
resetDOM();
runAnimation();
});