¿Cómo detectar el desplazamiento horizontal en jQuery?

¿Cómo detecto el desplazamiento horizontal con jQuery?

Esto obtendrá todos los rollos:

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

Quiero solo el horizontal.

Esto parece funcionar

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

jsFiddle .

Una actualización que muestra la dirección hacia la izquierda o hacia la derecha en un desplazamiento horizontal basado en el código anterior:

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

Pruébelo en http://jsfiddle.net/EsPk7/7/

El enlace jsFiddle de dunderwood en realidad no contenía su código. He bifurcado su jsFiddle con una mezcla de lo que publicó aquí y lo que está en el 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 "); } };