zoukankan      html  css  js  c++  java
  • 移动端下拉滚动刷新

    一、需求

      移动端下拉到底,加载更多数据。由于网页的执行都是单线程的,在JS执行的过程中,页面会呈现阻塞状态。因此,如果JS处理的数据量过大,过程复杂,可能会造成页面的卡顿。传统的数据展现都以分页的形式,但是分页的效果并不好,需要用户手动点击下一页,才能看到更多的内容。有很多网站使用无限分页的模式,即网页视窗到达内容底部就自动加载下一部分的内容。

    二、概念

    clientHeight:视口(viewport)的高度,就是我们在浏览器中所能看到内容的高度;

    screenHeight:屏幕高度,实际移动设备的屏幕高度。

    scrollHeight:真实内容的高度;

    scrollTop:视窗上面隐藏掉的部分。

    三、原理

    真实内容高度 - 视窗高度 - 上面隐藏的高度 < 20,作为加载的触发条件

    四、实现方法

    1,获取滚动条到文档顶部的距离

    var scrollTop = document.documentElement.scrollTop;
    //
    var scrollTop = Math.ceil($(this).scrollTop());

    2,获取可视区高度

    1 var v_height = document.documentElement.clientHeight;
    2 //
    3 var v_height = $(this).height();

    3,获取文档总高度

    1 var d_height = document.body.scrollHeight;
    2 //
    3 var d_height = $(document).height();

    4,添加滚动监听事件

    1 $(window).scroll(function(){});

    5,真实内容高度 - 视窗高度 - 上面隐藏的高度 < 20,作为加载的触发条件

     1 $(function(){
     2     getData();
     3     $(window).scroll(function(){
     4         var scrollTop = Math.ceil($(this).scrollTop());
     5         var v_height = $(this).height();
     6         var d_height = $(document).height();
     7         if(d_height - v_height - scrollTop < 20){
     8             showLoading();
     9             getData();
    10             hideLoading();
    11         }
    12     })  
    13 })

    五、触发请求常用判断

     1 function condition(){
     2     var pageHeight = Math.max(document.body.scrollHeight,document.body.offsetHeight);
     3     var viewportHeight = window.innerHeight || 
     4         document.documentElement.clientHeight ||
     5         document.body.clientHeight || 0;
     6     var scrollHeight = window.pageYOffset ||
     7         document.documentElement.scrollTop ||
     8         document.body.scrollTop || 0;
     9     return pageHeight - viewportHeight - scrollHeight < 20;
    10 }
  • 相关阅读:
    IIS的各种身份验证详细测试
    HTTP Error 401.3 Unauthorized Error While creating IIS 7.0 web site on Windows 7
    C/S and B/S
    WCF ContractFilter mismatch at the EndpointDispatcher exception
    Configure WCF
    Inheritance VS Composition
    Unhandled Error in Silverlight Application, code 2103 when changing the namespace
    Java RMI VS TCP Socket
    Principles Of Object Oriented Design
    Socket处理发送和接收数据包,一个小实例:
  • 原文地址:https://www.cnblogs.com/guanghe/p/12033849.html
Copyright © 2011-2022 走看看