HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" type="text/css" href="CSS/main.css"> </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> </body> <script type="text/javaScript" src="javaScript/jquery-2.2.4.min.js"></script> <script type="text/javaScript" src="javaScript/iscroll.js"></script> <script type="text/javaScript" src="JavaScript/main.js"></script> </html>
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; } .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; }
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: "http://localhost/%e4%b8%8b%e6%8b%89%e5%8a%a0%e8%bd%bd/source/main.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); }
注意引入jquery插件和iscroll插件
浙公网安备 33010602011771号