1

今天在技术群看到有朋友有需求,就随手写了一个,大家随便看看~
demo地址:http://www.dtzhuanjia.com/pri...
(备注:这个主要用在移动端,所以用rem随便写了写样式= =PC看着不舒服用模拟器看吧)

html:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>下一页</title>    
    <meta name="Keywords" content="">
    <meta name="description" content="">
    <meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width">
    <link rel="stylesheet" href="http://www.dtzhuanjia.com/css/init.css">
    <link rel="stylesheet" href="http://www.dtzhuanjia.com/private/plugin/nextpage/index.css">
</head>
<body>
    <script src="http://www.dtzhuanjia.com/js/calrem.js"></script>
    <style>
    .block{width:100%;height:4rem;line-height:4rem; background:#ccc;text-align:center;font-size:1rem;color:#fff;border-bottom:}
    </style>
    <div class="main">
        <div class="block">已经加载的1-1</div>
        <div class="block">已经加载的1-2</div>
        <div class="block">已经加载的1-3</div>
        <div class="block">已经加载的1-4</div>
        <div class="block">已经加载的1-5</div>
    </div>
    
    <script src="http://www.dtzhuanjia.com/js/basic/jquery.js"></script>
    <script src="http://www.dtzhuanjia.com/private/plugin/nextpage/index.js"></script>
    <script>
    $(document).ready(function(){
        var initNextPage = new InitNextPage({
            bottom : 20,//距离底部像素
            target : ".main",//插入目标源
            url : "http://www.dtzhuanjia.com/private/plugin/nextpage/nextPage.php"//ajax请求的url
        })
    });
    </script>
</body>
</html>

js代码:

function InitNextPage(obj){
    _this = this;
    _this.bottom = obj.bottom||10;//距离底部像素
    _this.target = obj.target||"body";//插入目标源
    _this.url = obj.url||"none";//ajax请求的url
    _this.page = 2;
    //滑到底
    $(window).scroll(function(){
        _this.scrollToBottom();
    });    
}
InitNextPage.prototype = {
    scrollToBottom : function(){
        if($(window).scrollTop()+$(window).height()>$(document).height()-_this.bottom){
            if(_this.url=="none"){
                alert("ajax url不能为空");
                return;
            }
            $.ajax({
                url : _this.url,
                async: false,
                data : {
                    page : _this.page,
                },
                success : function(data){
                    _this.page++;
                    $(_this.target).append(data);
                }
            });
        }
    }
}

备注:

var initNextPage = new InitNextPage({
    bottom : 20,//距离底部像素
    target : ".main",//插入目标源
    url : "http://www.dtzhuanjia.com/private/plugin/nextpage/nextPage.php"//ajax请求的url
})

上面代码中:
bottom是距离底部多少像素时执行ajax,默认10
target是执行成功后,像哪个dom插入返回的数据,默认为body
url是ajax url地址,必填。

如果有其他需求,比如返回json(例子中直接返回Html),可以修改success中的代码,就不赘述了~


KissDuo
460 声望9 粉丝

FE coding~ing~