原生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 相关文章推荐
如何用JavaScript动态呼叫函数(两种方式)
May 03 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
Feb 07 Javascript
JS计算网页停留时间代码
Apr 28 Javascript
js数组中如何随机取出一个值
Jun 13 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
Dec 16 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
Nov 30 Javascript
node.js入门教程之querystring模块的使用方法
Feb 27 Javascript
vue如何实现observer和watcher源码解析
Mar 09 Javascript
js 中rewrap-ajax.js插件实例代码
Oct 20 Javascript
layui点击按钮页面会自动刷新的解决方案
Oct 25 Javascript
node.js实现简单的压缩/解压缩功能示例
Nov 05 Javascript
vue ajax 拦截原理与实现方法示例
Nov 29 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
MongoDB在PHP中的常用操作小结
2014/02/20 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
ThinkPHP5框架中使用JWT的方法示例
2020/06/03 PHP
extjs fckeditor集成代码
2009/05/10 Javascript
Jquery chosen动态设置值实例介绍
2013/08/08 Javascript
jquery 淡入淡出效果的简单实现
2014/02/07 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
学做Bootstrap的第一个页面
2016/05/15 HTML / CSS
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
vue v-on监听事件详解
2017/05/17 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解
2019/08/07 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
采用python实现简单QQ单用户机器人的方法
2014/07/03 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
python如何使用unittest测试接口
2018/04/04 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
对PyQt5中的菜单栏和工具栏实例详解
2019/06/20 Python
python多进程并行代码实例
2019/09/30 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
python GUI模拟实现计算器
2020/06/22 Python
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
数据库专业英语
2012/11/30 面试题
中专毕业生求职简历的自我评价
2013/10/21 职场文书
寒假思想汇报
2014/01/10 职场文书
体育节口号
2014/06/19 职场文书
环境保护建议书
2014/08/26 职场文书
乌镇导游词
2015/02/02 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
小学语文国培研修日志
2015/11/13 职场文书
ubuntu下常用apt命令介绍
2022/06/05 Servers