检测(事件)尝试使用javascript或angularJS在页面顶部/底部向上/向下滚动,

时间:2016-01-27 16:18:06

标签: javascript html angularjs

所以当我已经在页面的顶部(或底部)时,我想检测滚动到顶部(或底部)。我在这里看到了几个有类似问题的问题,但唯一的答案是检测鼠标滚轮事件。

但考虑到我想在任何类似动作触发时检测它(比如按上/下键,或鼠标滚轮和触摸板滚动,或者PageUp / Down,或者home / end ......)为每一个创建eventlisteners?有没有人知道更好的方法呢?

1 个答案:

答案 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;
});
});
相关问题