ajax完成下拉革新+上拉加載

《ajax完成下拉革新+上拉加載》

上面動圖是完成的結果。

全程無需從新加載全部頁面,只須要上下拉即可革新數據!

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上拉加載</title>
    <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>

    <script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
            list-style: none;
            box-sizing: border-box;
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
        }
        html {font-size: 14px; }
        header {
            height: 40px;
            width: 100%;
            min-width: 320px;
            background: #000;
            text-align: center;
            color: #fff;
            font-size: 1.2rem;
            line-height: 40px;
        }
        footer {
            height: 52px;
            width: 100%;
            min-width: 320px;
            background: #000;
            text-align: center;
            color: #fff;
            font-size: 1.2rem;
            line-height: 52px;
            position: absolute;
            bottom: 0;
        }
        #wrapper {
            width: 100%;
            min-width: 320px;
            position: absolute;
            left: 0;
            top: 40px;
            bottom: 52px;
            overflow: hidden;
            z-index: 1;
            background-color: #eee;

            /* 防備本機Windows上的觸摸事宜 */
            -ms-touch-action: none;

            /* 防備callout tap-hold和文本的挑選 */
            -webkit-touch-callout: none;
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;

            /* 防備文本調解取向變化對web應用順序很有效 */
            -webkit-text-size-adjust: none;
            -moz-text-size-adjust: none;
            -ms-text-size-adjust: none;
            -o-text-size-adjust: none;
            text-size-adjust: none;
        }
        .pull-loading {
            text-align: center;
            height: 40px;
            line-height: 40px;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        #scroller ul li {
            padding: 20px 10px;
            border-bottom: solid 1px #ccc;
            background: #fff;
        }
    </style>

</head>
<body>
<header>上拉加載,下拉革新</header>
<div id="wrapper">
    <div id="scroller">
        <ul>
            <li>這裏顯現部份數據</li>
            <li>這裏顯現部份數據</li>
            <li>這裏顯現部份數據</li>
            <li>這裏顯現部份數據</li>
            <li>這裏顯現部份數據</li>
        </ul>
        <div class="pull-loading">
            上拉加載
        </div>
    </div>
</div>
<footer>底部</footer>

<script type="text/javascript" src="js/iscroll.js"></script>
<script type="text/javascript">
    var myscroll = new iScroll("wrapper", {
        onScrollMove: function () { //拉動時
            //上拉加載
            if (this.y < this.maxScrollY) {
                $(".pull-loading").html("開釋加載");
                $(".pull-loading").addClass("loading");
            } else {
                $(".pull-loading").html("上拉加載");
                $(".pull-loading").removeClass("loading");
            }
        },
        onScrollEnd: function () { //拉動結束時
            //上拉加載
            if ($(".pull-loading").hasClass('loading')) {
                $(".pull-loading").html("加載中...");
                pullOnLoad();
            }
        }
    });

    //上拉加載函數,ajax
    var num = 0;
    var page = 4; //每次加載4條
    function pullOnLoad() {
        setTimeout(function () {
            $.ajax({
                url: "json/data.json",
                type: "get",
                dataType: 'json',
                success: function (data) {
                    var data_length = data.length;//數據的總長度
                    var remainder = data_length % page;//餘數
                    if ( data_length >= (num+page)){
                        for (var j = num; j < num + page; j++){
                            var text = data[j].text;
                            $("#scroller ul").append("<li>"+ text +"</li>");
                        }
                        num+=page;
                    }else if (remainder != 0 && data_length-num == remainder){
                        for (var j = num; j < num + remainder; j++){
                            var text = data[j].text;
                            $("#scroller ul").append("<li>"+ text +"</li>");
                        }
                        num+=page;
                    }else{
                        $('.pull-loading').html("沒有了喲");
                    }
                    myscroll.refresh();
                },
                error: function () {
                    console.log("出錯了");
                }
            });
            myscroll.refresh();
        }, 500);
    }
</script>

</body>
</html>

data.json

[
  {
    "text":"十年編程兩茫茫,工期短,需求長。",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"千行代碼,Bug那邊藏。",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"縱使上線又怎樣,新版本,繼承忙。",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"是非倒置沒商量,睡地鋪,吃食堂。",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"半夜夢醒,無人在身邊。",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"最怕燈火闌珊時,手機響,內心慌。",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"是,順序員設想了順序",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"照樣,順序作育了順序員?",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"順序,順序員——你的名字,我的姓氏",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"日擼代碼三千行,猖獗、猖獗,人未老,珠已黃。",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"少年投身IT行,老來無伴又何妨。擦肩玉人不屑看,三千碼友在身邊。",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"老漢聊發少年狂,不小心,選錯行。誤入IT,兩眼淚茫茫",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"半夜話苦楚,轉眼淚千行,日日工期緊,亦為重構忙。久易無定論,命懸需求方,四顧前程路,一步三踉蹡。",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"IT放兩旁,閑來把碼敲,餘音仍繞樑。碼農壓力大,願君更康健!",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"111111111111",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"22222",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"33333",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"4444",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"55555",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"66666",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"7777",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"88888",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"99999",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"1010101010",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"1.1.1.1.1.1.1.1.1.1.",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"12121212121212",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"1131313133131",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"1414141414",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"1515151515151",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"111111111111",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"111111111111",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"111111111111",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"111111111111",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"111111111111",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"111111111111",
    "date":"2018-02-02 14:00"
  },
  {
    "text":"111111111111",
    "date":"2018-02-02 14:00"
  }

]

須要引入兩個js文件
jquery-2.2.4.min.js
iscroll.js

這兩個文件已預備好了

https://pan.baidu.com/s/1dGST…

功德圓滿!

    原文作者:TANKING
    原文地址: https://segmentfault.com/a/1190000015086218
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞