js頁面中實現加載更多功能


  分頁-如何實現加載更多功能,目前的在很多網站上使用的加載更多功能中,使用最多的是iscroll.js實現的上拉加載更多、下拉刷新功能。但是iscroll.js本身並沒有集成加載更多的功能,需要進行自行擴展。

  最簡單的就是給一個加載更多的按鈕,實現假分頁加載更多,也就是頁面上是全部的數據,只是按照頁面顯示要求,自己規定顯示部分范圍,其余隱藏。如果還有數據,點擊下加載更多,繼續拉幾條數據;直到沒有更多數據了,就會顯示加載完畢。

  1. 加載時顯示“正在加載……”
  2. 數據太多想初次加載部分數據,在底部加上“加載更多”按鈕
  3. 直到沒有更多數據了,就會顯示加載完畢。

  其中 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代碼即可。

  這是我第一次使用博客與大家分享我的代碼,請各位前輩不吝賜教,多多指點,有什么問題都可以給我指出,不勝感激。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM