• h5页面列表滚动加载数据


    h5列表滚动加载数据很常见,以下分享下今天做的案例:

    前言

    这个效果实现需要知道三个参数

    1. scrollTop  --  滚动条距离顶部的高度
    2. scrollHeight -- 当前页面的总高度(body总高度)
    3. clientHeight --  当前可视的页面高度(设备窗口的高度)
    

    html

    <!--加载提示框-->
    <div id="loading"></div>
    

    css

    #loading {
      height: 32px;
      line-height: 32px;
      text-align: center;
    }
    

    js

    //状态标记
    var loading = true;
    var start = 1;//当前页
    var length = 5;//每页条数
    
    //列表滚动加载数据
    $(window).scroll(function () {
        var scrollTop = $(this).scrollTop();    //滚动条距离顶部的高度
        var scrollHeight = $(document).height();   //当前页面的总高度
        var clientHeight = $(this).height();    //当前可视的页面高度
        var totalHeight = parseFloat(clientHeight) + parseFloat(scrollTop);
    
        if (scrollHeight - totalHeight < 40) {  注:-40 上拉加载更灵敏
            if (!loading) {
                loading = true;
                $('#loading').show();
                $('#loading').text("正在加载...");
                start += 1;
    
                //加载数据
                loadData(start, length);
            } else {
                return false;
            }
        }
    });
    
    
    function loadData(start, length) {
        $.get(url, {start: start, length: length}, function (result) {
            var dataList = result.resultData.records;
            if (dataList.length > 0) {
                var opthtml = "";
                dataList.forEach((value, index, array) => {
                    ///拼接html
                    opthtml += ""
                });
                $("#listDiv").append(opthtml)
            } else {
                $('#loading').text("完全加载");
                //延时隐藏
                // setTimeout(() => {
                //     $("#loading").hide();
                // }, 1000)
                return false;
            }
            setTimeout(() => {
                //内容获取后,隐藏加载提示
                $("#loading").hide();
                loading = false;
            }, 1000)
        });
    }
    
  • 相关阅读:
    CodeForces 363B Fence
    php结合redis实现高并发下的抢购、秒杀功能 (转载)
    PHP+Mysql基于事务处理实现转账功能的方法
    Yahoo网站性能优化的34条军规
    Cookie/Session机制详解
    PHP根据传入参数合并多个JS和CSS文件的简单实现
    PHP 使用redis实现秒杀
    PHP 常用字符串函数
    mysqldump
    局域网下关闭别人的电脑
  • 原文地址:https://www.cnblogs.com/joe-tang/p/12375282.html
Copyright © 2020-2023  润新知