所以当我已经在页面的顶部(或底部)时,我想检测滚动到顶部(或底部)。我在这里看到了几个有类似问题的问题,但唯一的答案是检测鼠标滚轮事件。
但考虑到我想在任何类似动作触发时检测它(比如按上/下键,或鼠标滚轮和触摸板滚动,或者PageUp / Down,或者home / end ......)为每一个创建eventlisteners?有没有人知道更好的方法呢?
答案 0 :(得分:0)
这是我到目前为止所拥有的。无论你如何滚动,我都可以检测到你的顶部或底部。问题在于检测到达到它后何时继续滚动,因为除非您实际滚动,否则滚动事件不会触发。我唯一能想到的是以编程方式稍微向上滚动屏幕,以便您可以再次滚动,但我不建议这样做。除此之外,除了为用户可以滚动的每种可能方式创建自定义事件之外,我没有看到任何其他方式。
$(function(){
var lastScrollBarPos = 0;
$(window).scroll(function(event){
var browserViewportHeight = $(window).height();
var hmtlDocHeight = $(document).height();
var scrollBarPos = $(window).scrollTop();
if (scrollBarPos > lastScrollBarPos){
// downscroll code
console.log('scroll down');
if(hmtlDocHeight == browserViewportHeight + scrollBarPos){
console.log('reached bottom');
}
} else {
// upscroll code
console.log('scroll up');
if(scrollBarPos == 0){
//we are at the top and someone is scrolling
console.log('reached top');
}
}
lastScrollBarPos = scrollBarPos;
});
});