我使用以下代码在向上或向下滚动时执行操作。
var lastScrollTop = 0;
$(window).scroll(function(event){
var st = $(this).scrollTop();
if (st > lastScrollTop){
// downscroll code
} else {
// upscroll code
console.log("up");
}
lastScrollTop = st;
});
但是,我只想触发一次。 知道为什么以下版本不起作用?
谢谢!
var lastScrollTop = 0;
$(window).one('scroll',function(){
var st = $(this).scrollTop();
if (st > lastScrollTop){
// downscroll code
} else {
// upscroll code
console.log("up");
}
lastScrollTop = st;
});
答案 0 :(得分:0)
如果你想检查你的处理程序是否已被调用 - 你应该定义一个标志(在这种情况下为hasCalled
):
var lastScrollTop = 0;
$(window).scroll(function(event){
var st = $(this).scrollTop();
if(st <= lastScrollTop) {
console.log("up");
$(window).off('scroll');
}
lastScrollTop = st;
});