原生javascript实现的分页插件pagenav


Posted in Javascript onAugust 28, 2014

这一款是用原生javascript实现的分页插件pagenav,页码显示jquery插件,只需要存在#pageNav,则会在其中显示页码,调用时可根据需要先重写go方法.(已去除jquery依赖)。。。。

插件代码如下:

/*
 **************************
 author:Keel (keel.sike@gmail.com)
 **************************

 页码显示jquery插件,只需要存在#pageNav,则会在其中显示页码.
 调用时可根据需要先重写go方法.(已去除jquery依赖)

 **************************
 示例(注意:页面中放置id为pageNav的html对象):

 //转到页码时触发的自定义方法,p为当前页码,pn为总页数
 pageNav.fn = function(p,pn){
 alert(p+","+pn);
 };
 //初始跳到第3页,共33页
 pageNav.go(3,33);

 */
var pageNav = pageNav || {};
pageNav.fn = null;
//p为当前页码,pn为总页数
pageNav.nav = function(p, pn) {
  //只有一页,直接显示1
  if (pn <= 1) {
    this.p = 1;
    this.pn = 1;
    return this.pHtml2(1);
  }
  if (pn < p) {
    p = pn;
  };
  var re = "";
  //第一页
  if (p <= 1) {
    p = 1;
  } else {
    //非第一页
    re += this.pHtml(p - 1, pn, "上一页");
    //总是显示第一页页码
    re += this.pHtml(1, pn, "1");
  }
  //校正页码
  this.p = p;
  this.pn = pn;

  //开始页码
  var start = 2;
  var end = (pn < 9) ? pn: 9;
  //是否显示前置省略号,即大于10的开始页码
  if (p >= 7) {
    re += "...";
    start = p - 4;
    var e = p + 4;
    end = (pn < e) ? pn: e;
  }
  for (var i = start; i < p; i++) {
    re += this.pHtml(i, pn);
  };
  re += this.pHtml2(p);
  for (var i = p + 1; i <= end; i++) {
    re += this.pHtml(i, pn);
  };
  if (end < pn) {
    re += "...";
    //显示最后一页页码,如不需要则去掉下面这一句
    re += this.pHtml(pn, pn);
  };
  if (p < pn) {
    re += this.pHtml(p + 1, pn, "下一页");
  };
  return re;
};
//显示非当前页
pageNav.pHtml = function(pageNo, pn, showPageNo) {
  showPageNo = showPageNo || pageNo;
  var H = " <a href='javascript:pageNav.go(" + pageNo + "," + pn + ");' class='pageNum'>" + showPageNo + "</a> ";
  return H;

};
//显示当前页
pageNav.pHtml2 = function(pageNo) {
  var H = " <span class='cPageNum'>" + pageNo + "</span> ";
  return H;
};
//输出页码,可根据需要重写此方法
pageNav.go = function(p, pn) {
  //$("#pageNav").html(this.nav(p,pn)); //如果使用jQuery可用此句
  document.getElementById("pageNav").innerHTML = this.nav(p, pn);
  if (this.fn != null) {
    this.fn(this.p, this.pn);
  };
};

效果如下:

原生javascript实现的分页插件pagenav

演示地址:http://demo.3water.com/js/2014/pagenav/  有需要的朋友自己扒代码吧,很简单,我就不提供直接下载了

Javascript 相关文章推荐
jQuery对象和DOM对象的相互转化实现代码
Mar 02 Javascript
一个网马的tips实现分析
Nov 28 Javascript
Jquery插件 easyUI属性汇总
Jan 19 Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
Jan 27 Javascript
js 获取计算后的样式写法及注意事项
Feb 25 Javascript
用jquery模仿的a的title属性的例子
Oct 22 Javascript
移动设备web开发首选框架:zeptojs介绍
Jan 29 Javascript
jQuery的Scrollify插件实现滑动到页面下一节点
Jul 05 Javascript
简单的分页代码js实现
May 17 Javascript
React Native悬浮按钮组件的示例代码
Apr 05 Javascript
JavaScript实现随机点名器实例详解
May 07 Javascript
js实现弹窗猜数字游戏
Nov 26 Javascript
JavaScript判断变量是对象还是数组的方法
Aug 28 #Javascript
分享一个自己动手写的jQuery分页插件
Aug 28 #Javascript
jQuery标签替换函数replaceWith()的使用例子
Aug 28 #Javascript
jQuery焦点图切换简易插件制作过程全纪录
Aug 27 #Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
Aug 27 #Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
Aug 27 #Javascript
JavaScript实现的in_array函数
Aug 27 #Javascript
You might like
PHP中的日期处理方法集锦
2007/01/02 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
window.location.href IE下跳转失效的解决方法
2014/03/27 Javascript
不使用ajax实现无刷新提交表单
2014/12/21 Javascript
jQuery操作JSON的CRUD用法实例
2015/02/25 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
JavaScript操作XML文件之XML读取方法
2015/06/09 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
微信小程序之小豆瓣图书实例
2016/11/30 Javascript
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
2019/01/20 Javascript
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
微信小程序实现签字功能
2019/12/23 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
Python语法快速入门指南
2015/10/12 Python
学习python之编写简单简单连接数据库并执行查询操作
2016/02/27 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
django用户登录和注销的实现方法
2018/07/16 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
Python空间数据处理之GDAL读写遥感图像
2019/08/01 Python
Django REST framwork的权限验证实例
2020/04/02 Python
python处理写入数据代码讲解
2020/10/22 Python
python 读取串口数据的示例
2020/11/09 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
Made in Design英国:设计家具、照明、家庭装饰和花园家具
2019/09/24 全球购物
产品质量承诺书
2014/03/27 职场文书
公务员诚信承诺书
2014/05/26 职场文书
关于运动会的广播稿
2014/09/22 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
2014年小学体育工作总结
2014/12/11 职场文书
2015国庆节宣传语
2015/07/14 职场文书
浅谈TypeScript 索引签名的理解
2021/10/16 Javascript
Redis高可用集群redis-cluster详解
2022/03/20 Redis