我有一个与scroll()
事件绑定的函数,但事实是我希望仅在垂直滚动的情况下触发该函数(我也有一些水平滚动)。
我没有在jQuery的文档中看到这种可能性,可能有这样做的技巧吗?
答案 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.");
}
});
答案 2 :(得分:0)
这应该有效:
var prevLeft = 0;
$(document).scroll( function(evt) {
var currentLeft = $(this).scrollLeft();
if(prevLeft === currentLeft) {
console.log("I scrolled vertically.");
}
else {
prevLeft = currentLeft;
}
});