在jQuery中是否有垂直滚动事件

时间:2010-07-06 13:34:02

标签: jquery scroll

我有一个与scroll()事件绑定的函数,但事实是我希望仅在垂直滚动的情况下触发该函数(我也有一些水平滚动)。

我没有在jQuery的文档中看到这种可能性,可能有这样做的技巧吗?

3 个答案:

答案 0 :(得分:10)

没有特定事件,但您可以测试.scrollLeft()位置以查看它是否已从先前存储的位置移动。

这样的事情:

var prevLeft = 0;
$(document).scroll( function(evt) {
    var currentLeft = $(this).scrollLeft();
    if(prevLeft != currentLeft) {
        prevLeft = currentLeft;
        console.log("I scrolled horizontally.");
    }
});

答案 1 :(得分:3)

您还可以使用.scrollTop制作自定义垂直滚动事件。

var prevTop = 0;
$(document).scroll( function(evt) {
    var currentTop = $(this).scrollTop();
    if(prevTop !== currentTop) {
        prevTop = currentTop;
        console.log("I scrolled vertically.");
    }
});

Jquery .scrollTop()

答案 2 :(得分:0)

这应该有效:

var prevLeft = 0;
$(document).scroll( function(evt) {
    var currentLeft = $(this).scrollLeft();
    if(prevLeft === currentLeft) {
        console.log("I scrolled vertically.");
    } 
    else {
        prevLeft = currentLeft;
    }
});