-
Notifications
You must be signed in to change notification settings - Fork 0
/
slider.js
74 lines (64 loc) · 1.99 KB
/
slider.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
const slider = (sliders, animationStyle, prevBtn, nextBtn) => {
const slide = document.querySelectorAll(sliders);
let slideIndex = 0;
slide.forEach(item => {
if (item != slide[slideIndex]) {
item.style.display = "none";
}
item.classList.add("animated");
});
function showSlides() {
slide.forEach(item => {
item.style.display = "none";
});
slide[slideIndex].style.display = "block";
}
let showSlidesByIntervalActive = true;
function showSlidesByInterval() {
setInterval(() => {
if (showSlidesByIntervalActive) {
slideIndex++;
if (slideIndex == slide.length) {
slideIndex = 0;
showSlides();
} else {
showSlides();
}
slide[slideIndex].classList.add(animationStyle);
}
}, 5000);
}
showSlidesByInterval();
slide[0].parentNode.addEventListener('mouseenter', () => {
showSlidesByIntervalActive = false;
});
slide[0].parentNode.addEventListener('mouseleave', () => {
showSlidesByIntervalActive = true;
});
try {
const prev = document.querySelector(prevBtn),
next = document.querySelector(nextBtn);
next.addEventListener('click', () => {
slideIndex++;
if (slideIndex == slide.length) {
slideIndex = 0;
showSlides();
} else {
showSlides();
}
slide[slideIndex].classList.add(animationStyle);
});
prev.addEventListener('click', () => {
slideIndex--;
if (slideIndex < 0) {
slideIndex = slide.length - 1;
showSlides();
} else {
showSlides();
}
slide[slideIndex].classList.add(animationStyle);
});
} catch (err) {
}
};
export default slider;