上拉数据加载

上拉数据加载

最近项目中需要对大量数据进行处理,鉴于项目是移动端项目,就采用类似于懒加载的上拉加载进行数据处理。

网上也找了很多插件,最后感觉挺繁琐,干脆自己走了一个简单的逻辑进行处理,话不多说,贴代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>上拉加载数据测试</title>
    <meta name="viewport" content="width=device-width">
    <style>
        .cont p{
            height: 200px;
            line-height: 200px;
            font-size: 26px;
            text-align: center;
            width: 100%;
            border-bottom: 1px solid #ddd;
        }
    </style>
</head>
<body>
<div class="cont">
    <p>第1页</p>
    <p>第2页</p>
    <p>第3页</p>
    <p>第4页</p>
    <p>第5页</p>
    <p>第6页</p>
    <p>第7页</p>
    <p>第8页</p>
    <p>第9页</p>
    <p>第10页</p>
</div>
</body>
<script src="js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
    loadData();
    function loadData(){
        var range = 50,maxpage = 5,page = 1,totalHeight=0;
        $(window).scroll(function(){
            var scrollHeight = $(window).scrollTop();//页面卷起的高度
            totalHeight = parseFloat($(window).height())+parseFloat(scrollHeight);//页面文档高度+页面卷起的高度页面卷起的高度
            if(($(document).height()-range) <= totalHeight && page != maxpage){
                $('.cont').append('<p>增添条数</p>');
                page++;
            }
        })
    }
    /*实际项目中maxPage并不是前端进行写死的值,这里只是一个简单的demo,实际中前端实现上拉加载对于后台来说是分页功能实现。
    * 因此实际中最大页码数应该是由后台进行返回的
    * range是元素底部距离可视区高度差值,保证了用户在上拉加载的时候的体验度。
    * */
</script>
</html>
原文地址:https://www.cnblogs.com/DreamerLeaf/p/7058676.html