分頁-如何實現加載更多功能,目前的在很多網站上使用的加載更多功能中,使用最多的是iscroll.js實現的上拉加載更多、下拉刷新功能。但是iscroll.js本身並沒有集成加載更多的功能,需要進行自行擴展。
最簡單的就是給一個加載更多的按鈕,實現假分頁加載更多,也就是頁面上是全部的數據,只是按照頁面顯示要求,自己規定顯示部分范圍,其余隱藏。如果還有數據,點擊下加載更多,繼續拉幾條數據;直到沒有更多數據了,就會顯示加載完畢。
- 加載時顯示“正在加載……”
- 數據太多想初次加載部分數據,在底部加上“加載更多”按鈕
- 直到沒有更多數據了,就會顯示加載完畢。
其中 class="loading" 中的loading為自己隨便命名,在這里以在js頁面上通過c標簽的foreach 方法循環遍歷企業名字 來做演示
1 <div class="loading"> 2 <div class="hidden"> 3 <div class="horisontalpadding"> 4 <ul class="products product-thumb-info-list"> 5
<--想要實現加載的內容顯示在下面即可,同時注意使用li標簽--> 6 <c:forEach var="company" items="${companys}"> 7 <li class="product searchproduct" style="width: 30%;"><a 8 <div 9 style="width: 350px; height: 30px; border: 3px solid #CCC; text-align: center; border-radius: 40 px;"> 10 <h4 class="company.name" style="color: #030303">${company.name}</h4> 11 </div> 12 </a></li> 13 </c:forEach>
14 </ul> 15 </div> 16 </div> 17 <ul class="list">數據加載中,請稍后... 18 </ul> 19 <div class="space30"></div> 20 <div style="display: none;" data-bind="visible: isProductsLoading"> 21 <div id="pager_loading"></div> 22 </div> 23 <div class="container"> 24 <div class="alert alert-info text-center"> 25 <a href="javascript:;" onClick="loading.loadMore();"><div 26 class="more">加載更多企業</div></a> 27 </div> 28 </div> 29 </div>
下面顯示script代碼部分
1 <script> 2 var _content = []; //臨時存儲li循環內容 3 var loading = { 4 _default : 6, //默認顯示圖片個數 5 _loading : 6, //每次點擊按鈕后加載的個數 6 init : function() { 7 var lis = $(".loading .hidden li"); 8 $(".loading ul.list").html(""); 9 for (var n = 0; n < loading._default; n++) { 10 lis.eq(n).appendTo(".loading ul.list"); 11 } 12 $(".loading ul.list img").each(function() { 13 $(this).attr('src', $(this).attr('realSrc')); 14 }) 15 for (var i = loading._default; i < lis.length; i++) { 16 _content.push(lis.eq(i)); 17 } 18 $(".loading .hidden").html(""); 19 }, 20 loadMore : function() { 21 var mLis = $(".loading ul.list li").length; 22 for (var i = 0; i < loading._loading; i++) { 23 var target = _content.shift(); 24 if (!target) { 25 $('.loading .more').html("<p>全部加載完畢...</p>"); 26 break; 27 } 28 $(".loading ul.list").append(target); 29 $(".loading ul.list img").eq(mLis + i).each(function() { 30 $(this).attr('src', $(this).attr('realSrc')); 31 }); 32 } 33 } 34 } 35 loading.init(); 36 </script>
這種是最簡單的方法不需要引入任何插件,直接在js頁面上添加script代碼即可。
這是我第一次使用博客與大家分享我的代碼,請各位前輩不吝賜教,多多指點,有什么問題都可以給我指出,不勝感激。