• 页面滚动到底部自动加载下一页功能的实现


    页面滚动到底部自动加载下一页功能的实现,效果见本博首页

    1、endlesspage.js文件内容

    var gPageSize = 10;
    var i = 1; //设置当前页数,全局变量
    var finished = false;
    var dataUrl = '';
    
    $(function () {
        //根据页数读取数据
        function getData(pagenumber) {
            //console.log(i);
            $.get(dataUrl, { pagesize: gPageSize, p: pagenumber }, function (data) {
                //if (data.length > 0) {
                    //var jsonObj = JSON.parse(data);
                    jsonObj = data.info;
                    insertDiv(jsonObj);
                //}
            });
            $.ajax({
                type: "post",
                url: dataUrl,
                data: { pagesize: gPageSize, p: pagenumber },
                dataType: "json",
                success: function (data) {
                    $(".loading").hide();
                    if (data.length > 0) {
                        //var jsonObj = JSON.parse(data);
                        jsonObj = data.info;
                        insertDiv(jsonObj);
                    }
                },
                beforeSend: function () {
                    $(".loading").show();
                },
                error: function () {
                    $(".loading").hide();
                }
            });
            i++; //页码自动增加,保证下次调用时为新的一页。
        }
    
        //核心代码
        var winH = $(window).height(); //页面可视区域高度 
        var scrollHandler = function () {
            var pageH = $(document.body).height();
            var scrollT = $(window).scrollTop(); //滚动条top 
            var aa = (pageH - winH - scrollT) / winH;
            if (!finished && aa < 0.2) { //0.02是个参数
                if (i % 10 === 0) { //每10页做一次停顿
                    getData(i);
                    $(window).unbind('scroll');
                    $("#btn_Page").show();
                } else {
                    getData(i);
                    finished = true;
                    setTimeout(function(){finished = false;},500);
                    $("#btn_Page").hide();
                }
            }
        }
    
        //初始化加载第一页数据
        getData(1);
    
        //定义鼠标滚动事件
        $(window).scroll(scrollHandler);
    
        //继续加载按钮事件
        $("#btn_Page").click(function () {
            getData(i);
            $(window).scroll(scrollHandler);
        });
    });

    2、界面调用

    <script src="__PUBLIC__/Js/endlesspage.js"></script>
    <script type="text/javascript">
        dataUrl = "/Home/Index/index2";
        //生成数据html,append到div中
        function insertDiv(jsonData) {
            var $mainDiv = $(".articleList");
            var html = '';
            for (var i = 0; i < jsonData.length; i++) {
                html += '<div class="panel panel-success">';
                html += '<div class="panel-heading"><h4 class="panel-title"><button type="button" class="btn btn-danger btn-sm"><i class="fa fa-bar-chart-o fa-fw">' + jsonData[i].visitNums + '</i></button> <a href="/Home/Article/detail/id/' + jsonData[i].id + '">' + jsonData[i].title + '</a></h4></div>';
                html += '<div class="panel-body"><p>' + jsonData[i].summary + '</p></div>';
                html += '<div class="panel-footer"> <em class = "pull-right"> ' + jsonData[i].channelName + ' </em><em>最后更新: ' + date('Y-m-d H:i:s', jsonData[i].update_time) + ' </em></div>';
                html += '</div>';
            }
            $mainDiv.append(html);
        }
    </script>
  • 相关阅读:
    a标签href不跳转 禁止跳转
    重新安装 tcp/ip协议
    痤疮的治疗
    tuxedo 强制重启
    山西企业主要指标稳步回升 运行渐入平稳轨道
    unix/linux 环境软件调试笔记
    连连看消重算法
    oracle sql developer guide
    取某字段最大值所在的的记录
    食指的《相信未来》
  • 原文地址:https://www.cnblogs.com/yhdsir/p/5026279.html
Copyright © 2020-2023  润新知