基于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>
复制代码

至此。一个假分页功能已经实现。希望可以给大家带来帮助

猜你喜欢

转载自blog.csdn.net/qmdweb/article/details/80803849
今日推荐