原生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 相关文章推荐
超清晰的document对象详解
Feb 27 Javascript
myEvent.js javascript跨浏览器事件框架
Oct 24 Javascript
node+express+jade制作简单网站指南
Nov 26 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
Dec 03 Javascript
在JavaScript中操作数组之map()方法的使用
Jun 09 Javascript
JavaScript 模块的循环加载实现方法
Dec 13 Javascript
浅谈JavaScript 中有关时间对象的方法
Aug 15 Javascript
Bootstrap基本模板的使用和理解1
Dec 14 Javascript
理解Koa2中的async&amp;await的用法
Feb 05 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
Oct 19 Javascript
Vue实现简单的跑马灯
May 25 Javascript
浅谈js中的attributes和Attribute的用法与区别
Jul 16 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字符串按照单词进行反转的方法
2015/03/14 PHP
我整理的PHP 7.0主要新特性
2016/01/07 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
firefox firebug中文入门教程 脚本之家新年特别版
2010/01/02 Javascript
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
通过JS来动态的修改url,实现对url的增删查改
2014/09/01 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
jQuery选择器源码解读(八):addCombinator函数
2015/03/31 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
jquery 动态增加,减少input表单的简单方法(必看)
2016/10/12 Javascript
jQuery表单元素选择器代码实例
2017/02/06 Javascript
浅谈JavaScript的innerWidth与innerHeight
2017/10/12 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
vue+node实现图片上传及预览的示例方法
2018/11/22 Javascript
使用React手写一个对话框或模态框的方法示例
2019/04/25 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
2014/04/08 Python
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
Jupyter中直接显示Matplotlib的图形方法
2018/05/24 Python
python随机数分布random测试
2018/08/27 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
Python 变量的创建过程详解
2019/09/02 Python
python实现小程序推送页面收录脚本
2020/04/20 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
新闻网站实习自我鉴定
2013/09/25 职场文书
工作态度检讨书
2014/02/11 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
加班费申请报告
2015/05/15 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
妇联2016年六一国际儿童节活动总结
2016/04/06 职场文书
导游词之塘栖古镇
2019/12/04 职场文书