web-dev-qa-db-fra.com

Comment détecter le défilement horizontal dans jQuery?

Comment détecter le défilement horizontal avec jQuery?

Cela donnera tous les parchemins:

$(window).scroll(function () {
    alert('in');
});

Je veux juste l'horizontal.

31
Aharon Muallem

Cela semble fonctionner.

var lastScrollLeft = 0;
$(window).scroll(function() {
    var documentScrollLeft = $(document).scrollLeft();
    if (lastScrollLeft != documentScrollLeft) {
        console.log('scroll x');
        lastScrollLeft = documentScrollLeft;
    }
});

jsFiddle .

38
alex

Une mise à jour indiquant la direction vers la gauche ou la droite dans un défilement horizontal en fonction du code ci-dessus:

var lastPos = 0;
$(window).scroll(function() {
    var currPos = $(document).scrollLeft();

    if (lastPos < currPos) {
        console.log('scroll right');
    } 
    if (lastPos > currPos) 
    {
        console.log('scroll left');
    }

    lastPos = currPos;
});

Testez-le à http://jsfiddle.net/EsPk7/7/

5
dunderwood

le lien jsFiddle de dunderwood ne contenait pas son code. J'ai fourré son jsFiddle avec quel mélange de ce qu'il a posté ici et de ce qui est sur le jsFiddle:

var lastPos = 0;
$(window).scroll(function() {
    var currPos = $(document).scrollLeft();

    if (lastPos < currPos) {
        $('#current').html('Right');
    }
    if (lastPos > currPos) {
        $('#current').html('Left');
    }

    lastPos = currPos;
});

http://jsfiddle.net/kuVK8/

3
dantiston
window.onresize = function() { 
    if ( $("div").outerWidth() < $("div").get(0).scrollWidth ) {
        console.log("foo bar scrollbar");
    } else {
        console.log(" no scrolling ");
    }
};
0
mahtab