zoukankan      html  css  js  c++  java
  • 基于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>

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

  • 相关阅读:
    MongoDB优化之一:常见优化方法
    Spark Streaming之一:整体介绍
    Java中实现MongoDB自增主键ID
    RDD之一:总体介绍
    对一致性Hash算法,Java代码实现的深入研究
    MongoDB 创建基础索引、组合索引、唯一索引以及优化
    mongo-查询
    MongoTemplate聚合操作
    RESTLET开发实例(一)基于JAX-RS的REST服务
    Hashtable的实现原理
  • 原文地址:https://www.cnblogs.com/aiiright/p/6734845.html
Copyright © 2011-2022 走看看