-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
69 lines (59 loc) · 2.34 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
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
// selection les parties photos avec la class".card-container-section"
let slideElements = document.querySelectorAll(".card-container-section");
// selection des dots avec la class".dot"
let dotsElements = document.querySelectorAll(".dot");
// declaration de la viariable "currentIndex" et assignation de la variable à 0
let currentIndex = 0;
// pour chaque dots, on ajoute un event listener et on fait glisser les images
dotsElements.forEach((element, i) => {
element.addEventListener("click", () => {
slides(i);
});
});
// selection des la class".prev" pour ajouter un event listener et on fait glisser les images dans le sens negatif
document.querySelector(".prev").addEventListener("click", () => {
slides(currentIndex - 1);
});
// slectection des la class".next" pour ajouter un event listener et on fait glisser les images dans le sens positif
document.querySelector(".next").addEventListener("click", () => {
slides(currentIndex + 1);
});
// creation de la fonction "slides"
function slides(index) {
// si la position de l'image est inferieur à 0,
if (index < 0) {
// on part à partir du dernier element
index = slideElements.length - 1;
// si la position est supérieur à la taille de la liste,
} else if (index > slideElements.length - 1) {
// je retourne à la 1ere position
index = 0;
}
// initialiation de la variable "currentIndex" et assignation de la variable à l'index
currentIndex = index;
// pour chaque slide selectionné,
slideElements.forEach((element, i) => {
// on enleve la classe "active"
element.classList.remove("active");
// si i qui parcourt, est egal à la position de l'image
if (i === index) {
// on ajoute la classe "active"
element.classList.add("active");
}
});
// on appelle la fonction "setActiveDots" pour que les dots et les images soient actifs en meme temps.
setActiveDots(currentIndex);
}
// declaration de la fonction "setActiveDots" et on fait la meme action que pour les elements images
function setActiveDots(index) {
// pour chaque element dots,
dotsElements.forEach((element, i) => {
// on enleve la classe "active"
element.classList.remove("active");
// si i qui parcourt, est egal à la position de l'image
if (i === index) {
// on ajoute la classe "active"
element.classList.add("active");
}
});
}