PageSourceSearch

https://www.accademiamoda.it/wp-content/themes/iuad-theme/js/hero-carousel.js?ver=1.0.0

js accademiamoda.it collected 2026-10-04 13:23:49 UTC 2,729 bytes, 92 lines download raw bytes

1document.addEventListener('DOMContentLoaded', () => {
2    const slider = document.querySelector('.hero-slider');
3    if (!slider) return;
4
5    const slides = slider.querySelectorAll('.hero-slider__slide');
6    const dots = slider.querySelectorAll('.hero-slider__dot');
7    let currentSlide = 0;
8    let autoplayInterval;
9    let touchStartX = 0;
10    let touchEndX = 0;
11
12    // Funzione per cambiare slide
13    const goToSlide = (index) => {
14        // Rimuovi la classe active dalla slide e dot correnti
15        slides[currentSlide].classList.remove('active');
16        dots[currentSlide].classList.remove('active');
17
18        // Aggiorna l'indice della slide corrente
19        currentSlide = index;
20
21        // Aggiungi la classe active alla nuova slide e dot
22        slides[currentSlide].classList.add('active');
23        dots[currentSlide].classList.add('active');
24    };
25
26    // Funzione per passare alla slide successiva
27    const nextSlide = () => {
28        const nextIndex = (currentSlide + 1) % slides.length;
29        goToSlide(nextIndex);
30    };
31
32    // Funzione per passare alla slide precedente
33    const prevSlide = () => {
34        const prevIndex = (currentSlide - 1 + slides.length) % slides.length;
35        goToSlide(prevIndex);
36    };
37
38    // Gestione click sui dots
39    dots.forEach((dot, index) => {
40        dot.addEventListener('click', () => {
41            goToSlide(index);
42            resetAutoplay();
43        });
44    });
45
46    // Gestione swipe su mobile
47    slider.addEventListener('touchstart', (e) => {
48        touchStartX = e.touches[0].clientX;
49    });
50
51    slider.addEventListener('touchend', (e) => {
52        touchEndX = e.changedTouches[0].clientX;
53        handleSwipe();
54    });
55
56    const handleSwipe = () => {
57        const swipeThreshold = 50; // Soglia minima per considerare un swipe
58        const swipeDistance = touchEndX - touchStartX;
59
60        if (Math.abs(swipeDistance) > swipeThreshold) {
61            if (swipeDistance > 0) {
62                prevSlide();
63            } else {
64                nextSlide();
65            }
66            resetAutoplay();
67        }
68    };
69
70    // Funzione per gestire l'autoplay
71    const startAutoplay = () => {
72        autoplayInterval = setInterval(nextSlide, 5000); // Cambia slide ogni 5 secondi
73    };
74
75    const resetAutoplay = () => {
76        clearInterval(autoplayInterval);
77        startAutoplay();
78    };
79
80    // Avvia l'autoplay
81    startAutoplay();
82
83    // Pausa autoplay quando il mouse è sopra lo slider
84    slider.addEventListener('mouseenter', () => {
85        clearInterval(autoplayInterval);
86    });
87
88    // Riprendi autoplay quando il mouse esce dallo slider
89    slider.addEventListener('mouseleave', () => {
90        startAutoplay();
91    });
92}); 

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.