下拉刷新: html: js: 無限滾動: html: js: 解釋: 如有問題,歡迎留言 ...
下拉刷新:
html:
<div class="page-content ptr-content">
<%--下拉刷新圖標--%> <div class="ptr-preloader"> <div class="preloader"></div> <div class="ptr-arrow"></div> </div> <div class="page-content" style="padding-top:0px"> <div class="card"> <div class="card-footer"><span style="color: #CC0000">案例1</span> </div> </div> <div class="card"> <div class="card-footer"><span style="color: #CC0000">案例2</span> </div> </div> </div> </div>
js:
<script> return { on: { pageInit: function (e, done) { $('.ptr-content').on('ptr:refresh', function (e) { //此處編寫刷新邏輯代碼 console.log("開始刷新"); setTimeout(function () { console.log("結束"); app.ptr.done(); }, 1000); }); } } } </script>
無限滾動:
html:
<%--無限滾動容器--%> <div class="page-content infinite-scroll-content"> <div class="simple-list"> <div class="card"> <div class="card-footer"><span style="color: #CC0000">案例1</span> </div> </div> <div class="card"> <div class="card-footer"><span style="color: #CC0000">案例2</span> </div> </div> <div class="card"> <div class="card-footer"><span style="color: #CC0000">案例3</span> </div> </div> <div class="card"> <div class="card-footer"><span style="color: #CC0000">案例4</span> </div> </div> </div> <%--預載入器--%> <div class="preloader infinite-scroll-preloader"></div> </div>
js:
<script> return { on: { pageInit: function (e, done) { var allowInfinite = true;//載入標誌 var lastItemIndex = $('.simple-list div[class="card"]').length;//現有載入量 var maxItems = 200;//最大載入量 var itemsPerLoad = 5;//每次載入量 //滾動事件處理程式 $('.infinite-scroll-content').on('infinite', function () { if (!allowInfinite) return;// 如果正在載入,退出 console.log("當前數量:" + lastItemIndex); allowInfinite = false;//設置載入標誌 //模擬1秒載入 setTimeout(function () { //設置正在載入標誌 allowInfinite = true; if (lastItemIndex >= maxItems) { app.infiniteScroll.destroy('.infinite-scroll-content');//沒有更多可載入項,銷毀載入事件,防止不必要載入 $('.infinite-scroll-preloader').remove(); //刪除預緊器 return; } //生成新html var html = ''; for (var i = lastItemIndex + 1; i <= lastItemIndex + itemsPerLoad; i++) { html += '<div class="card">'; html += '<div class="card-footer">'; html += '<span style="color: #CC0000">案例' + i + '</span>'; html += '</div>'; html += '</div>'; } $('.simple-list').append(html); //綁定 lastItemIndex = $('.simple-list div[class="card"]').length; //更新最近索引 console.log("載入後數量:" + lastItemIndex); }, 1000); }); } } } </script>
解釋:
pageInit: function (e, done) {} 代表文檔就緒函數
$('.ptr-content').on('ptr:refresh', function (e) {} 代表class為“ptr-content”的div下拉刷新事件(ptr:refresh是下拉刷新事件)
$('.infinite-scroll-content').on('infinite', function () {} 代表class為“infinite-scroll-content”的div滾動事件(infinite是滾動事件)
如有問題,歡迎留言