forked from solygambas/html-css-javascript-projects
-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
35 lines (31 loc) · 1.01 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
const nums = document.querySelectorAll(".nums span");
const counter = document.querySelector(".counter");
const finalMessage = document.querySelector(".final");
const replay = document.querySelector("#replay");
const resetDOM = () => {
counter.classList.remove("hide");
finalMessage.classList.remove("show");
nums.forEach((num) => (num.classList.value = ""));
nums[0].classList.add("in");
};
const runAnimation = () => {
nums.forEach((num, index) => {
const nextToLast = nums.length - 1;
num.addEventListener("animationend", (e) => {
if (e.animationName === "goIn" && index !== 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");
}
});
});
};
runAnimation();
replay.addEventListener("click", () => {
resetDOM();
runAnimation();
});