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

jQuery中是否存在垂直滚动事件,jquery,scroll,Jquery,Scroll,我有一个与scroll()event绑定的函数,但事实是我希望该函数仅在垂直滚动的情况下触发(我也有一些水平滚动) 我在jQuery的文档中没有看到这种可能性,可能有这样做的技巧吗?没有特定的事件,但是您可以测试.scrollLeft()位置,查看它是否已从以前存储的位置移动 大概是这样的: var prevLeft = 0; $(document).scroll( function(evt) { var currentLeft = $(this).scrollLeft(); i

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


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

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

大概是这样的:

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

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

您还可以使用
.scrollTop
创建自定义垂直滚动事件

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

我不知道为什么我没有想到这一点。非常感谢这正是我想要的。(我只是使用了scrollTop(),因为它适合我的情况)