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