Как определить горизонтальную прокрутку в jQuery?

Как определить горизонтальную прокрутку с помощью jQuery?

Это вызовет все свитки:

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

Я хочу только горизонтальный.

Ответы

Ответ 1

Кажется, что это работает.

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

jsFiddle.

Ответ 2

Обновление, показывающее направление влево или вправо в горизонтальной прокрутке в соответствии с приведенным выше кодом:

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

Проверьте его на http://jsfiddle.net/EsPk7/7/

Ответ 3

dunderwood jsFiddle ссылка фактически не содержала его код. Я расколол его jsFiddle с тем, что смесь того, что он разместил здесь, и что на 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/