是否有javascript事件监听器仅在用户向上滚动或向下滚动时检测?

是否有javascript事件监听器仅在用户向上滚动或向下滚动时检测?,javascript,jquery,events,Javascript,Jquery,Events,我知道。scroll检测滚动,但如果我只想在用户向下滚动时发生某件事,或者用户向下滚动时发生某件事,该怎么办?没有用于此的侦听器,但您可以滚动最后一个位置的变量,并对照新的位置进行检查。所以应该是这样的: 保留一个变量,例如,last_scroll_position,当您有一个滚动时,如果last_scroll_position-current_position>0,则用户向上滚动,如果小于0,则向下滚动 供进一步参考: 例如: <div style='height:10000px;'&g

我知道。scroll检测滚动,但如果我只想在用户向下滚动时发生某件事,或者用户向下滚动时发生某件事,该怎么办?

没有用于此的侦听器,但您可以滚动最后一个位置的变量,并对照新的位置进行检查。所以应该是这样的:

保留一个变量,例如,last_scroll_position,当您有一个滚动时,如果last_scroll_position-current_position>0,则用户向上滚动,如果小于0,则向下滚动

供进一步参考:

例如:

<div style='height:10000px;'>

var last_scroll=0;
$(window).scroll(function() {
    var direction='none';
    var current_scroll=$(this).scrollTop();
    if(current_scroll < last_scroll) direction='up';
    else if(current_scroll > last_scroll) direction = 'down';
    last_scroll=current_scroll;
    console.log(direction)
});

虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。感谢@Howlin提供提示,更新的答案感谢您回答我的问题。这背后的逻辑似乎很简单,我唯一的问题是捕获最后一个位置的值。我有一个捕获scrollTop的函数,因此为当前滚动位置创建变量非常简单。只是不知道如何捕捉上一个滚动位置。@tripstar添加了一个代码示例,希望对您有所帮助!