11
votes

Y a-t-il un événement de défilement vertical à JQuery

J'ai une fonction que j'ai liée à défilement () événement, mais je veux que la fonction soit déclenchée uniquement en cas de défilement vertical (j'ai aussi un défilement horizontal aussi). < / p>

Je n'ai pas vu une telle possibilité dans la documentation de JQuery, pourrait-il y avoir un truc pour le faire?


0 commentaires

3 Réponses :


11
votes

Il n'y a pas d'événement spécifique, mais vous pouvez tester la position .scrollleft () code> pour voir s'il a été déplacé d'une position précédemment stockée.

quelque chose comme ceci: p >

var prevLeft = 0;
$(document).scroll( function(evt) {
    var currentLeft = $(this).scrollLeft();
    if(prevLeft != currentLeft) {
        prevLeft = currentLeft;
        console.log("I scrolled horizontally.");
    }
});


1 commentaires

Je ne sais pas pourquoi je n'y ai même pas pensé. Merci beaucoup c'est exactement ce que je cherchais. (Je viens d'utiliser Scrolltop () à la place parce que cela ajusté ma situation)



0
votes

Cela devrait fonctionner:

var prevLeft = 0;
$(document).scroll( function(evt) {
    var currentLeft = $(this).scrollLeft();
    if(prevLeft === currentLeft) {
        console.log("I scrolled vertically.");
    } 
    else {
        prevLeft = currentLeft;
    }
});


0 commentaires

5
votes

Vous pouvez également utiliser .scrolltop pour créer un événement de défilement vertical personnalisé. xxx

jQuery .scrolltop ()


0 commentaires