我有一个函数,我用scroll()
事件绑定,但事实是我想只有在垂直滚动(我也有一些水平滚动)情况下触发函数。jQuery中有垂直滚动事件
我没有在jQuery的文档中看到这种可能性,可能会有这样的诡计吗?
我有一个函数,我用scroll()
事件绑定,但事实是我想只有在垂直滚动(我也有一些水平滚动)情况下触发函数。jQuery中有垂直滚动事件
我没有在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(),因为它符合我的情况) – 2010-07-06 14:43:58
@Michael - 不客气。 :O) – user113716 2010-07-06 14:46:46