-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathslider.js
72 lines (55 loc) · 1.68 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
const slideRight = document.querySelector(".right");
const slideLeft = document.querySelector(".left");
const slider = document.querySelector(".slider");
const images = document.querySelectorAll(".image");
const bottomDiv = document.querySelector('.bottom');
let slideNum = 1;
const imagesLength = images.length;
for(i = 0; i < imagesLength; i++){
const div = document.createElement('div');
div.className = 'button';
bottomDiv.appendChild(div);
}
const buttons = document.querySelectorAll('.button');
buttons[0].style.backgroundColor = 'black'
const resetBg = () => {
buttons.forEach((button) => {
button.style.backgroundColor = 'transparent';
})
}
buttons.forEach((button , i) => {
button.addEventListener('click' , () => {
resetBg();
slider.style.transform = `translateX(-${i * 300}px)`;
slideNum = i + 1;
button.style.backgroundColor = 'black'
})
})
const nextSlide = () => {
slider.style.transform = `translateX(-${slideNum * 300}px)`;
slideNum++;
};
const prevSlide = () => {
slider.style.transform = `translateX(-${(slideNum - 2) * 300}px)`;
slideNum--;
}
const getFirstSlide = () => {
slider.style.transform = `translateX(0px)`;
slideNum = 1;
};
const getLastSlide = () => {
slider.style.transform = `translateX(-${(imagesLength - 1) * 300}px)`;
slideNum = imagesLength;
}
const setColor = () => {
resetBg();
buttons[slideNum - 1].style.backgroundColor = 'black';
}
slideRight.addEventListener("click", () => {
slideNum < imagesLength ? nextSlide() : getFirstSlide();
setColor();
});
slideLeft.addEventListener("click", () => {
slideNum > 1 ? prevSlide() : getLastSlide();
setColor();
});