如何在jQuery中检测水平滚动?

时间:2011-08-16 10:28:01

标签: jquery scroll

如何使用jQuery检测水平滚动?

这将获得所有卷轴:

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

我只想要横向的。

4 个答案:

答案 0 :(得分:39)

这似乎有效。

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

jsFiddle

答案 1 :(得分:6)

根据上述代码在水平滚动条目中向左或向右显示方向的更新:

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/

答案 2 :(得分: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/

答案 3 :(得分:0)

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