基於jquery 的分頁插件,前端實現假分頁效果


上次分享了一款jquery插件,現在依舊分享這個插件,不過上一次分享主要是用於regular框件,且每一頁數據都是從后端獲取過來的,這一次的分享主要是講一次性獲取完數據 然后手動進行分頁。此需求基本上是和前端搜索掛鈎的。所有的數據都在頁面里只是展示的不同。這樣前端搜索就能從全部數據中進行搜索,而不是尷尬的只能從某一頁里進行搜索,不過這種需求一般都在數據量較小的情況下才會使用,畢竟搜索功能一般不是前端來實現的。

這次的插件依舊是 http://106.2.44.116/src/javascript/base/jquery.pagination.js這款插件。

至於這個框架的詳細用法我就不再說了,上一篇里都寫了,現在直接從實現假分頁功能入手。

    var list =[
                    {pic:"1",name:"zhang",number:"1234",section:"企業事業部"},
                    {pic:"2",name:"zhang",number:"1234",section:"企業事業部"},
                    {pic:"3",name:"zhang",number:"1234",section:"企業事業部"},
                    {pic:"4",name:"zhang",number:"1234",section:"企業事業部"},
                    {pic:"5",name:"zhang",number:"1234",section:"企業事業部"},
                    {pic:"6",name:"zhang",number:"1234",section:"企業事業部"},
                    {pic:"7",name:"zhang",number:"1234",section:"企業事業部"},
                    {pic:"8",name:"zhang",number:"1234",section:"企業事業部"},
                    {pic:"9",name:"zhang",number:"1234",section:"企業事業部"},
                    {pic:"10",name:"zhang",number:"1234",section:"企業事業部"},
                    {pic:"11",name:"zhang",number:"1234",section:"企業事業部"},
                    {pic:"12",name:"zhang",number:"1234",section:"企業事業部"},            
           ];

首先我們假定這組數據是從后端傳來的全部數據

接下來定義一個新數組  

var dataList =[];

我們假定需求為每頁展示4條數據

則第一步初始化分頁,具體配置信息見上一遍博客

  $('.box').pagination({
          totalData:12,//一共的條數
          showData:4,//每頁展示的條數
          coping:true,
          jump:true,
          keepShowPN:true,
          homePage:'首頁',
          endPage:'末頁',
          prevContent:'上頁',
          nextContent:'下頁',
          callback:function(api){
                    
          }
                   
    },function(api){
        $('.now').text(api.getCurrent());
  });

分頁的效果為:(可自定義樣式,在css文件中寫即可,詳細見上一篇)

第二步設置頁面默認看見的四條信息,在整體回調函數中寫

      function(api){
                 $('.now').text(api.getCurrent());
                     for(var i=0;i<4;i++){
                           $("<div class=\"conDv\">"+
                           "<div class=\"pic\">"+list[i].pic+"</div>"+
                        "<div class=\"name\">"+list[i].name+"</div>"+
                        "<div class=\"number\">"+list[i].number+"</div>"+
                        "<div class=\"section\">"+list[i].section+"</div>"+
                        "</div>").appendTo("#con");
                        dataList.push(list[i]);
                      }
           });

現在默認的四條已經展示出來了,如圖(樣式自己定義即可)

第三步:點擊分頁操作時。在點擊回調中寫

 callback:function(api){
                    $('.now').text(api.getCurrent());
                    api.getCurrent();
                    console.log((api.getCurrent()-1)*4+"到"+(api.getCurrent()-1)*4*2);
                    $("#con").text("");
                    
                    if(api.getCurrent() == 1){
                        for(var i=0;i<4;i++){
                               $("<div class=\"conDv\">"+
                               "<div class=\"pic\">"+list[i].pic+"</div>"+
                            "<div class=\"name\">"+list[i].name+"</div>"+
                            "<div class=\"number\">"+list[i].number+"</div>"+
                            "<div class=\"section\">"+list[i].section+"</div>"+
                            "</div>").appendTo("#con");
                           }
                     }else{
                        var next= (api.getCurrent()-1)*4*2;
                        if((api.getCurrent()-1)*4*2 >12){
                            next = 12;
                        }
                        for(var i= (api.getCurrent()-1)*4;i<next;i++){
                        $("<div class=\"conDv\">"+
                           "<div class=\"pic\">"+list[i].pic+"</div>"+
                        "<div class=\"name\">"+list[i].name+"</div>"+
                        "<div class=\"number\">"+list[i].number+"</div>"+
                        "<div class=\"section\">"+list[i].section+"</div>"+
                        "</div>").appendTo("#con");
                      }
                    }
                    
              }

其中第一頁和最后一頁要單獨處理,不能用通用公式,否則會報錯

至此一個簡單的分頁效果就完成了。效果如下,當點擊第二頁時,效果如下:

下面一段完整的代碼僅供大家參考

  1 <!DOCTYPE html>
  2 <html>
  3     <head>
  4         <meta charset="UTF-8">
  5         <title></title>
  6         <script src="js/jquery-1.10.2.min.js"></script>
  7         <script src="js/jquery.pagination.js"></script>
  8         <style>
  9             #con{
 10                 width:100%;
 11             }
 12             .conDv{
 13                 width:200px;
 14                 height:300px;
 15                 float:left;
 16             }
 17             .conDv .pic,.conDv .name,.conDv .number,.conDv .section{
 18                 width:100%;
 19                 height:20px;
 20                 text-align:center;
 21                 line-height:20px;
 22             }
 23             .box{
 24                 position: absolute;
 25                 bottom:630px;
 26                 left:40px;
 27             }
 28         </style>
 29     </head>
 30     <body>
 31         <div id="con">
 32             
 33         </div>
 34        <div class="box">
 35            
 36        </div>
 37        <script>
 38            var list =[
 39                     {pic:"1",name:"zhang",number:"1234",section:"企業事業部"},
 40                     {pic:"2",name:"zhang",number:"1234",section:"企業事業部"},
 41                     {pic:"3",name:"zhang",number:"1234",section:"企業事業部"},
 42                     {pic:"4",name:"zhang",number:"1234",section:"企業事業部"},
 43                     {pic:"5",name:"zhang",number:"1234",section:"企業事業部"},
 44                     {pic:"6",name:"zhang",number:"1234",section:"企業事業部"},
 45                     {pic:"7",name:"zhang",number:"1234",section:"企業事業部"},
 46                     {pic:"8",name:"zhang",number:"1234",section:"企業事業部"},
 47                     {pic:"9",name:"zhang",number:"1234",section:"企業事業部"},
 48                     {pic:"10",name:"zhang",number:"1234",section:"企業事業部"},
 49                     {pic:"11",name:"zhang",number:"1234",section:"企業事業部"},
 50                     {pic:"12",name:"zhang",number:"1234",section:"企業事業部"},            
 51            ];
 52            var dataList=[];
 53 
 54        $('.box').pagination({
 55                 totalData:12,
 56                 showData:4,
 57                 coping:true,
 58                  jump:true,
 59               keepShowPN:true,
 60               homePage:'首頁',
 61                endPage:'末頁',
 62               prevContent:'上頁',
 63               nextContent:'下頁',
 64               callback:function(api){
 65                     $('.now').text(api.getCurrent());
 66                     api.getCurrent();
 67                     console.log((api.getCurrent()-1)*4+""+(api.getCurrent()-1)*4*2);
 68                     $("#con").text("");
 69                     
 70                     if(api.getCurrent() == 1){
 71                         for(var i=0;i<4;i++){
 72                                $("<div class=\"conDv\">"+
 73                                "<div class=\"pic\">"+list[i].pic+"</div>"+
 74                             "<div class=\"name\">"+list[i].name+"</div>"+
 75                             "<div class=\"number\">"+list[i].number+"</div>"+
 76                             "<div class=\"section\">"+list[i].section+"</div>"+
 77                             "</div>").appendTo("#con");
 78                            }
 79                     }else{
 80                         var next= (api.getCurrent()-1)*4*2;
 81                         if((api.getCurrent()-1)*4*2 >12){
 82                             next = 12;
 83                         }
 84                         for(var i= (api.getCurrent()-1)*4;i<next;i++){
 85                         $("<div class=\"conDv\">"+
 86                            "<div class=\"pic\">"+list[i].pic+"</div>"+
 87                         "<div class=\"name\">"+list[i].name+"</div>"+
 88                         "<div class=\"number\">"+list[i].number+"</div>"+
 89                         "<div class=\"section\">"+list[i].section+"</div>"+
 90                         "</div>").appendTo("#con");
 91                       }
 92                     }
 93                     
 94               }
 95                    
 96             },function(api){
 97                  $('.now').text(api.getCurrent());
 98                      for(var i=0;i<4;i++){
 99                            $("<div class=\"conDv\">"+
100                            "<div class=\"pic\">"+list[i].pic+"</div>"+
101                         "<div class=\"name\">"+list[i].name+"</div>"+
102                         "<div class=\"number\">"+list[i].number+"</div>"+
103                         "<div class=\"section\">"+list[i].section+"</div>"+
104                         "</div>").appendTo("#con");
105                         dataList.push(list[i]);
106                       }
107             });
108        </script>
109     </body>
110 </html>

至此。一個假分頁功能已經實現。希望可以給大家帶來幫助

 


免責聲明!

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



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