基于jquery.page.js实现分页效果


Posted in jQuery onJanuary 01, 2018

基于jquery.page.js的一款简单的分页效果,供大家参考,具体内容如下

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8" /> 
<title>简单的jQuery分页插件</title> 
<style> 
*{ margin:0; padding:0; list-style:none;} 
a{ text-decoration:none;} 
a:hover{ text-decoration:none;} 
.tcdPageCode{padding: 15px 20px;text-align: left;color: #ccc;text-align:center;} 
.tcdPageCode a{display: inline-block;color: #428bca;display: inline-block;height: 25px; line-height: 25px; padding: 0 10px;border: 1px solid #ddd; margin: 0 2px;border-radius: 4px;vertical-align: middle;} 
.tcdPageCode a:hover{text-decoration: none;border: 1px solid #428bca;} 
.tcdPageCode span.current{display: inline-block;height: 25px;line-height: 25px;padding: 0 10px;margin: 0 2px;color: #fff;background-color: #428bca; border: 1px solid #428bca;border-radius: 4px;vertical-align: middle;} 
.tcdPageCode span.disabled{ display: inline-block;height: 25px;line-height: 25px;padding: 0 10px;margin: 0 2px; color: #bfbfbf;background: #f2f2f2;border: 1px solid #bfbfbf;border-radius: 4px;vertical-align: middle;} 
</style> 
</head> 
<body> 
<br><br><br> 
 
<div class="tcdPageCode"></div> 
 
<center><pre><br> 
</pre></center> 
 
<script src="js/jquery-1.8.3.min.js"></script> 
<script src="js/jquery.page.js"></script> 
<script> 
  $(".tcdPageCode").createPage({ 
    pageCount:100, 
    current:1, 
    backFn:function(p){ 
      console.log(p); 
    } 
  }); 
</script> 
</body> 
</html>

调用方法如下:

$(".tcdPageCode").createPage({
pageCount:10,
current:1,
backFn:function(p){
//单击回调方法,p是当前页码
}
});

pageCount:总页数
current:当前页

以下是jquery.page.js源代码:

(function($){ 
  var ms = { 
    init:function(obj,args){ 
      return (function(){ 
        ms.fillHtml(obj,args); 
        ms.bindEvent(obj,args); 
      })(); 
    }, 
    //填充html 
    fillHtml:function(obj,args){ 
      return (function(){ 
        obj.empty(); 
        //上一页 
        if(args.current > 1){ 
          obj.append('<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="prevPage">上一页</a>'); 
        }else{ 
          obj.remove('.prevPage'); 
          obj.append('<span class="disabled">上一页</span>'); 
        } 
        //中间页码 
        if(args.current != 1 && args.current >= 4 && args.pageCount != 4){ 
          obj.append('<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="tcdNumber">'+1+'</a>'); 
        } 
        if(args.current-2 > 2 && args.current <= args.pageCount && args.pageCount > 5){ 
          obj.append('<span>...</span>'); 
        } 
        var start = args.current -2,end = args.current+2; 
        if((start > 1 && args.current < 4)||args.current == 1){ 
          end++; 
        } 
        if(args.current > args.pageCount-4 && args.current >= args.pageCount){ 
          start--; 
        } 
        for (;start <= end; start++) { 
          if(start <= args.pageCount && start >= 1){ 
            if(start != args.current){ 
              obj.append('<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="tcdNumber">'+ start +'</a>'); 
            }else{ 
              obj.append('<span class="current">'+ start +'</span>'); 
            } 
          } 
        } 
        if(args.current + 2 < args.pageCount - 1 && args.current >= 1 && args.pageCount > 5){ 
          obj.append('<span>...</span>'); 
        } 
        if(args.current != args.pageCount && args.current < args.pageCount -2 && args.pageCount != 4){ 
          obj.append('<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="tcdNumber">'+args.pageCount+'</a>'); 
        } 
        //下一页 
        if(args.current < args.pageCount){ 
          obj.append('<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="nextPage">下一页</a>'); 
        }else{ 
          obj.remove('.nextPage'); 
          obj.append('<span class="disabled">下一页</span>'); 
        } 
      })(); 
    }, 
    //绑定事件 
    bindEvent:function(obj,args){ 
      return (function(){ 
        obj.on("click","a.tcdNumber",function(){ 
          var current = parseInt($(this).text()); 
          ms.fillHtml(obj,{"current":current,"pageCount":args.pageCount}); 
          if(typeof(args.backFn)=="function"){ 
            args.backFn(current); 
          } 
        }); 
        //上一页 
        obj.on("click","a.prevPage",function(){ 
          var current = parseInt(obj.children("span.current").text()); 
          ms.fillHtml(obj,{"current":current-1,"pageCount":args.pageCount}); 
          if(typeof(args.backFn)=="function"){ 
            args.backFn(current-1); 
          } 
        }); 
        //下一页 
        obj.on("click","a.nextPage",function(){ 
          var current = parseInt(obj.children("span.current").text()); 
          ms.fillHtml(obj,{"current":current+1,"pageCount":args.pageCount}); 
          if(typeof(args.backFn)=="function"){ 
            args.backFn(current+1); 
          } 
        }); 
      })(); 
    } 
  } 
  $.fn.createPage = function(options){ 
    var args = $.extend({ 
      pageCount : 10, 
      current : 1, 
      backFn : function(){} 
    },options); 
    ms.init(this,args); 
  } 
})(jQuery);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
简单实现jQuery弹幕效果
May 06 jQuery
jQuery导航条固定定位效果实例代码
May 26 jQuery
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
Aug 09 jQuery
jQuery取得元素标签名称小结(附代码)
Aug 16 jQuery
使用jQuery实现页面定时弹出广告效果
Aug 24 jQuery
jquery中done和then的区别(详解)
Dec 19 jQuery
jQuery与vue实现拖动验证码功能
Jan 30 jQuery
使vue实现jQuery调用的两种方法
May 12 jQuery
jQuery位置选择器用法实例分析
Jun 28 jQuery
jQuery使用ajax传递json对象到服务端及contentType的用法示例
Mar 12 jQuery
jQuery 动态粒子效果示例代码
Jul 07 jQuery
jquery实现企业定位式导航效果
Jan 01 #jQuery
jquery实现楼层滚动效果
Jan 01 #jQuery
jquery实现左右轮播切换效果
Jan 01 #jQuery
jQuery中ajax获取数据赋值给页面的实例
Dec 31 #jQuery
jQuery实现页码跳转式动态数据分页
Dec 31 #jQuery
CSS3结合jQuery实现动画效果及回调函数的实例
Dec 27 #jQuery
使用jQuery 操作table 完成单元格合并的实例
Dec 27 #jQuery
You might like
用php+mysql一个名片库程序
2006/10/09 PHP
php zend解密软件绿色版测试可用
2008/04/14 PHP
浅谈php中mysql与mysqli的区别分析
2013/06/10 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
js验证手机号、密码、短信验证码代码工具类
2020/06/24 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
JS实现的视频弹幕效果示例
2018/08/17 Javascript
layui中的switch开关实现方法
2019/09/03 Javascript
Python httplib,smtplib使用方法
2008/09/06 Python
python实现的守护进程(Daemon)用法实例
2015/06/02 Python
利用Python爬虫给孩子起个好名字
2017/02/14 Python
Python之reload流程实例代码解析
2018/01/29 Python
Python多层装饰器用法实例分析
2018/02/09 Python
python根据时间获取周数代码实例
2019/09/30 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
2019/11/05 Python
简单了解python列表和元组的区别
2020/05/14 Python
Python如何转换字符串大小写
2020/06/04 Python
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
澳大利亚著名的纺织品品牌:Canningvale
2020/05/05 全球购物
测绘工程专业个人自我评价
2013/12/01 职场文书
syb养殖创业计划书
2014/01/09 职场文书
班主任寄语大全
2014/04/04 职场文书
奉献演讲稿范文
2014/05/21 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
项目工作说明书
2014/07/29 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
创业计划书之闲置物品置换中心
2019/12/25 职场文书
python中Tkinter 窗口之输入框和文本框的实现
2021/04/12 Python
Python中第三方库Faker的使用详解
2022/04/02 Python