-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
69 lines (59 loc) · 2.13 KB
/
script.js
File metadata and controls
69 lines (59 loc) · 2.13 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
67
68
69
// ===============================
// SLIDER / CARRUSEL DE IMÁGENES
// ===============================
document.addEventListener("DOMContentLoaded", function () {
// Obtenemos todos los slides (cada imagen del carrusel)
const slides = document.querySelectorAll(".slider__slide");
// Botones de navegación
const prevBtn = document.querySelector(".slider__btn--prev");
const nextBtn = document.querySelector(".slider__btn--next");
// Puntos inferiores (indicadores)
const dots = document.querySelectorAll(".slider__dot");
// Índice del slide actual (empezamos en 0)
let currentSlide = 0;
// Función para mostrar un slide según su índice
function showSlide(index) {
// Si el índice se pasa por la derecha, volvemos al primero
if (index >= slides.length) {
currentSlide = 0;
}
// Si el índice se pasa por la izquierda, vamos al último
else if (index < 0) {
currentSlide = slides.length - 1;
} else {
currentSlide = index;
}
// Recorremos todos los slides y los ocultamos
slides.forEach((slide) => {
slide.classList.remove("slider__slide--active");
});
// Recorremos todos los puntos y los desactivamos
dots.forEach((dot) => {
dot.classList.remove("slider__dot--active");
});
// Mostramos el slide actual
slides[currentSlide].classList.add("slider__slide--active");
// Activamos el punto correspondiente
dots[currentSlide].classList.add("slider__dot--active");
}
// Manejamos click en botón "siguiente"
nextBtn.addEventListener("click", function () {
showSlide(currentSlide + 1);
});
// Manejamos click en botón "anterior"
prevBtn.addEventListener("click", function () {
showSlide(currentSlide - 1);
});
// Manejamos click en los puntos (indicadores)
dots.forEach((dot) => {
dot.addEventListener("click", function () {
// Leemos el índice que está en el atributo data-slide
const slideIndex = parseInt(dot.getAttribute("data-slide"));
showSlide(slideIndex);
});
});
// (Opcional) Autoplay cada 5 segundos
setInterval(function () {
showSlide(currentSlide + 1);
}, 5000);
});