-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
67 lines (56 loc) · 1.75 KB
/
Copy pathscript.js
File metadata and controls
67 lines (56 loc) · 1.75 KB
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
const Slider = document.querySelector('.slider')
const Slide = document.querySelectorAll('.slide')
const btnLeft = document.querySelector('.slider__btn--left')
const btnright = document.querySelector('.slider__btn--right')
const dotContainer = document.querySelector('.dots')
let curSlide = 0;
let maxSlide = Slide.length;
//.style.transform = 'scale(0.5)'
//Slider.style.overflow = 'visible '
const createDots = function(){
Slide.forEach(function(_,i){
dotContainer.insertAdjacentHTML('beforeend',`<button class="dots__dot" data-slide="${i}"></button>`)
})
}
createDots()
dotContainer.addEventListener('click', function(e){
if(e.target.classList.contains('dots__dot')){
const {slide} = e.target.dataset;
goToSlide(slide)
activateDot(slide)
}
})
const activateDot = function(slide){
document.querySelectorAll('.dots__dot').forEach((dot)=>{
dot.classList.remove('dots__dot--active')
})
document.querySelector(`.dots__dot[data-slide='${slide}']`).classList.add('dots__dot--active')
}
const goToSlide = function(slide){
Slide.forEach((s,i)=> (s.style.transform = `translateX(${100 * (i - slide)}%)`))
}
const nextSlide = function(){
if(curSlide === maxSlide - 1){
curSlide = 0
}else{
curSlide++;
}
goToSlide(curSlide)
activateDot(curSlide)
}
const prevSlide = function(){
if(curSlide === 0 ){
curSlide = maxSlide - 1
}else{
curSlide--;
}
goToSlide(curSlide)
activateDot(curSlide)
}
goToSlide(0)
btnright.addEventListener('click',nextSlide)
btnLeft.addEventListener('click',prevSlide)
document.addEventListener('keydown', function(e){
if(e.key === 'Arrowleft') prevSlide();
if(e.key === 'ArrowRight') nextSlide();
})