Comment détecter le défilement horizontal avec jQuery?
Cela donnera tous les parchemins:
$(window).scroll(function () {
alert('in');
});
Je veux juste l'horizontal.
Cela semble fonctionner.
var lastScrollLeft = 0;
$(window).scroll(function() {
var documentScrollLeft = $(document).scrollLeft();
if (lastScrollLeft != documentScrollLeft) {
console.log('scroll x');
lastScrollLeft = documentScrollLeft;
}
});
jsFiddle .
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/
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;
});
window.onresize = function() {
if ( $("div").outerWidth() < $("div").get(0).scrollWidth ) {
console.log("foo bar scrollbar");
} else {
console.log(" no scrolling ");
}
};