Come rilevare lo scorrimento orizzontale in jQuery?

Come posso rilevare lo scorrimento orizzontale con jQuery?

Questo otterrà tutti gli scroll:

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

Voglio solo quello orizzontale.

Questo sembra funzionare.

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

jsFiddle .

Un aggiornamento che mostra la direzione a sinistra oa destra in uno scroll orizzontale basato sul codice sopra:

 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; }); 

Provalo su http://jsfiddle.net/EsPk7/7/

il link jsFiddle di dunderwood in realtà non conteneva il suo codice. Ho biforcato il suo jsFiddle con quale mix di cosa ha postato qui e cosa c’è nel 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/

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