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

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

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

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

像这样的东西:

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

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

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

Jquery .scrollTop()

这应该工作:

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