Bonjour,
Tres bon tuto sur les evenetListener qui tombe bien car j'essaye de faire un slideshow sur le mousewheel.
Le but est la page scroll normalement et des que la div slide est en haut de la page le scroll change les images. Une fois la derniere image affichée le scroll reprend son comportement vers le bas.
evidement des que je reviens sur la div slide le comportement recommence.
Et c est la que je bloque.
J'ai fait un truc comme ça, le slide se fait bien mais une fois arreté la page ne scroll toujours pas et je peux plus rien faire.

var mySlides = ['img/img1.jpg', 'img/img2.jpg', 'img/img3.jpg'];

    var slideshow = document.getElementById('slideshow');
    var nextSlideIndex = 0;
    function rotateImage(e) {
        var evt = window.event || e;
        var delta = evt.detail ? evt.detail * (120) : evt.wheelDelta;
        nextSlideIndex = (delta <= 120) ? nextSlideIndex + 1 : nextSlideIndex - 1;
        nextSlideIndex = (nextSlideIndex < 0) ? mySlides.length - 1 : (nextSlideIndex > mySlides.length - 1) ? 0 : nextSlideIndex;
        slideshow.src = mySlides[nextSlideIndex];

        if (evt.preventDefault)
            evt.preventDefault();
        else
            return false;
        console.log(this.src, mySlides[mySlides.length - 1]);

        if (this.src == 'http://test.dev/' + mySlides[mySlides.length - 1]) {
            this.removeEventListener("mousewheel", rotateImage);

        }

    }
    slideshow.addEventListener("mousewheel", rotateImage, false);

Merci beaucoup

2 réponses


Salut,

Pourquoi tu te bases sur l'attribut src de la balise img ? C'est stupide (désolé si je suis sec). Il faut compter les slides et catcher le dernier, tout simplement.
De plus, tu ne précise pas ton souci, tu ne fais que nous c/c ton code.

Gregory
Auteur

Hello
Pas de pb pour le cote sec en revanche j'explique le souci faut lire ;)

J'ai fait un truc comme ça, le slide se fait bien mais une fois arreté la page ne scroll toujours pas et je peux plus rien faire.

De plus peu importe de cacher les dernieres images ou de remplacer le src le truc est que je veux un scroll normal vers le bas des que ma div se trouve en haut de la fenetre l'event scroll sur la window ne se fait plus mais j'attache le scroll a la dic pour passer d'image en image. Une fois la dernière image affichée je reinitialise a la premiere image et le scroll reprend son defilement vers le bas.
Ce comportement doit pourvoir se refaire des que je reviens sur la div.
J'espere avoir ete plus clair.
Thx