• 移动端下拉滚动刷新


    一、需求

      移动端下拉到底,加载更多数据。由于网页的执行都是单线程的,在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 }
  • 相关阅读:
    H3C-U200无法通过公网访问内网服务器
    mtr工具
    nginx网页跳转失败-302
    http协议
    接口 Swagger 部分Web API的隐藏
    接口 ApiController调用Controller 模拟Session 封装
    接口 Swagger 03 基于Token的身份认证
    电商 批量修改图片分辨率
    接口 Swagger 01 让Asp.net MVC项目显示API文档
    接口 Swagger 02 显示代码注释
  • 原文地址:https://www.cnblogs.com/guanghe/p/12033849.html
Copyright © 2020-2023  润新知