移动端下拉加载更多DEMO 纯js实现

                       

首先需要给div加scroll事件,监听滚动条滚动动作。那何时触发加载动作呢?当滚动条滚到底的时候。如何判断滚动条滚到底呢?
    当滚动条的高度加上滚动条到div顶部的高度等于div的可滚动高度时,说明滚动条到底部了。公式如下。

this.scrollHeight <= $(this).scrollTop() + $(this).height()  
   
   
  • 1

给出一个能跑的demo,需要引入jquery。

<!DOCTYPE=html>  <html>  <head>  <script src="jquery.js" type="text/javascript"></script>  </head>  <body>      <div>下拉加载更多</div>      <div class="main" style="height:700px;overflow:auto;">          <div class="child" style='border:1px solid red;margin-top:20px;color:grey;height:800px' ></div>      </div>  </body>  <script src="jquery-1.11.2.min.js"></script> <script  type="text/javascript">  $(document).ready(function(){      $(".main").unbind("scroll").bind("scroll", function(e){          var sum = this.scrollHeight;          if (sum <= $(this).scrollTop() + $(this).height()) {              $(".main").append($(".child").clone());          }      });  });  </script>  </html>  
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

如果等滚动条拉到底部时再加载,会影响用户体验。因为一般动态加载的时候都需要向服务端请求资源,这时需要时间。一个更佳的方式是,当滚动条距离底部一定距离(C)时,就动态加载更多,向服务端请求资源。也就是预加载,预读取。公式如下。

this.scrollHeight - C <= $(this).scrollTop() + $(this).height()  
   
   
  • 1

一个js功能,最后发现其实是个数学问题。最开始看同事写的类似功能的代码式,十分繁琐。当自己总结完这个公式后,思路立刻清晰了。透过现象看本质。

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自blog.csdn.net/jgftyfc/article/details/86564368