jpaginate

 

总结了一下前人的东西,并用了两种方法进行分配的学习,这样更有效的进行记忆.

 

demo网站为http://tympanus.net/jPaginate/

看demo时,IE6,7,9可能会出现排版混乱的情况.这个情况是因为其判断浏览器版本的方式不对,具体代码为:

?

 var bVer = navigator.appVersion;  if(bVer.indexOf('MSIE 7.0') > 0)   var ver = "ie7"; ? ?

将其换成

?

 var isIE = $.browser.msie;  var bv = $.browser.version;  if(isIE && bv == '7.0')   var ver = "ie7"; ?

?.

用法:

属性设置

设置方法如:

 $(elementID).paginate({ 
      count:80, 
      start:1, 
      ... 
 }) 

count: 数字,总记录数。

start: 数字,开始显示的页数,如:3表示从第3页开始。

display: 数字,分页条显示的页数,如:5表示一次显示5个页码数。

border: 是否显示页码的边框。(true/false)

border_color: 设置边框的颜色,如"#d3d3d3"。

text_color: 设置页码的颜色,如"#68ba64"。

background_color: 设置页码的背景色,如"#f7f7f7"。

border_hover_color: 设置鼠标滑向页码时页码边框的颜色。

text_hover_color: 设置鼠标滑向页码时页码的颜色。

background_hover_color: 设置鼠标滑向页码时页码背景的颜色。

images: 是否显示页码导航箭头(方向箭头)(true/false)

mouse: 设置为'press'时,当鼠标滑向导航箭头时,页码随之滚动;设置为'slide'时,鼠标单击一次导航箭头页码滚动一次。

onChange: 当单击页码时,回调函数.

 

实例应用:PHP+jQuery实现Ajax分页效果

首先准备index.php,该页面用来分页展示一个博客文章列表。

1、引用JS:

<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="js/jquery.jpaginate.js"></script>
<script type="text/javascript">
    
    $(function(){ 
    list(0);
    
    $("#demo").paginate({
        count: 3,
        start: 1,
        display: 2,
        border: true,
        border_color: '#fff',
        text_color: '#fff',
        background_color: 'black',
        border_hover_color: '#ccc',
        text_hover_color: '#000',
        background_hover_color: '#fff',
        images: false,
        mouse: 'press',
        onChange: function(page) {
                list(page);
        }
    });
    
    });
    
    function list(start){
        
        $.ajax({
            url:"article.php",
            type:"post",
            data:{id:start},
            dataType:"html",
            success: function(result){
                $("#pagetxt").html(result);
            
            },
            error: function(){
                alert('请求超时,请稍候再试');
                }
                
        })
    }
        
        

</script>

注意,

  1.   首先加载  list(0); 是在article类中去调用方法,输出第0页的内容.
      2. 属性count通过PHP计算出总页数$page,分页的总页数,不支持动态改变,不可写非int型数.个人建议在进入页面的时候就把页数传过来。
  3.  还要说明的是属性onChange:当点击页码时,调用函数,该函数实现了异步提交页码参数给article.php来处理.


2、引用CSS:

<link rel="stylesheet" href="css/style.css"/>

样式有官方的,也可通过自己进行修改.

3、index.php初始页面。

必须要显示一个初始的文章列表,代码如下

<body>
    <div class="demo">
    <h4>分页效果</h4>
    <div id="pagetxt">
      
    </div>
    <div id="demo"></div>
    
</div>

</body>

4.article.php代码。

该代码用来获取index.php提交过来的页码,查询数据库,并将输出结果。代码如下:

    include "Model.php";    //加载model数据库的类
    
    $model=new Model('stu');
    
    //echo $_GET['id'];exit;
    //var_dump($_POST);exit;
    $page=intval($_POST['id']); //获取页码 
    if(empty($id)){        //判断当没有时转为0
        $page=0;
    }
    //1.总记录数 
    $totle=$model->count();
    //echo $totle;exit;
    //2.每页显示数
    $pagesize=2; 
    //3.总页数  
    $page_max=ceil($totle/$pagesize);
    //echo $page_max;exit;
    //4.限制条数
    $page=min($page,$page_max); //防止点下一页,超过最大值
    //echo $page;exit;
    $page=max($page,1);    //防止点下一页,超过最小值
    
    if(isset($page)){ 
               $startPage=($page-1)*$pagesize;  //文章内容的偏移量
               //var_dump($startPage);exit;
               $model->limit=array($startPage,$pagesize);        //limit限制
            $model->order="id desc";                        //排序的方法
               //var_dump($model->limit);exit;
               $data=$model->select();                         //返回一个数组
   foreach($data as $row){                                 //进行foreach循环输出内容,当然也可以include进来.
             $age=$row['age'];
             echo "<p><span>$age</span><a href='view-blog-".$row['id'].".html' target='_blank'> 
            ".$row['name']."</a></p>"; //输出文章列表 
   } 
} 

 

第二种方法
别的地方没什么大变化,只是加载script的时候有所变化.

但是原理是一样的,只是没有用AJAX方法,用Jquery的load方法.变换成$_GET传参而已.在article中要用$_GET接受!

<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="js/jquery.jpaginate.js"></script>
<script type="text/javascript">
    
    $(function(){ 
        
    $("#pagetxt").load("article.php?id=0");
        
    
    $("#demo").paginate({ 
        count         : 10, 
        start         : 1, 
        display     : 3, 
        border                    : true, 
        border_color            : '#BEF8B8', 
        text_color              : '#79B5E3', 
        background_color        : '#E3F2E1',     
        border_hover_color        : '#68BA64', 
        text_hover_color          : '#2573AF', 
        background_hover_color    : '#CAE6C6',  
        images                    : false, 
        mouse                    : 'press', 
        onChange                 : function(page){ 
                                    //alert(page);
                                  $("#pagetxt").load("article.php?id="+page);
                                 } 
    }); 
}); 
</script>

 

 

posted @ 2013-07-11 23:05  午时的海  阅读(322)  评论(0)    收藏  举报