原生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 学习笔记之语句
Jan 14 Javascript
使用node+vue.js实现SPA应用
Jan 28 Javascript
最全的Javascript编码规范(推荐)
Jun 22 Javascript
JQuery PHP图片在线裁剪实例
Jul 27 Javascript
微信小程序 首页制作简单实例
Apr 07 Javascript
JS实现的简单下拉框联动功能示例
May 11 Javascript
在移动端使用vue-router和keep-alive的方法示例
Dec 02 Javascript
JavaScript实现英语单词题库
Dec 24 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
Dec 24 Javascript
js实现消灭星星(web简易版)
Mar 24 Javascript
JavaScript this关键字指向常用情况解析
Sep 02 Javascript
Vue实现摇一摇功能(兼容ios13.3以上)
Jan 26 Vue.js
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图像处理类代码分享
2012/01/19 PHP
解析php file_exists无效的解决办法
2013/06/26 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
比较详细的关于javascript 解析json的代码
2009/12/16 Javascript
Javascript的各种节点操作实例演示代码
2012/06/27 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
详解js中构造流程图的核心技术JsPlumb
2015/12/08 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
vue2笔记 — vue-router路由懒加载的实现
2017/03/03 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
使用vue实现grid-layout功能实例代码
2018/01/05 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
python中urllib模块用法实例详解
2014/11/19 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
Python namedtuple命名元组实现过程解析
2020/01/08 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
通俗讲解python 装饰器
2020/09/07 Python
Django数据库迁移常见使用方法
2020/11/12 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
"引用"与多态的关系
2013/02/01 面试题
研究生求职推荐信范文
2013/11/30 职场文书
木工主管岗位职责
2013/12/08 职场文书
如何写辞职信
2015/05/13 职场文书
在酒桌上的敬酒词
2015/08/12 职场文书
五一放假通知怎么写
2015/08/18 职场文书
详解Redis复制原理
2021/06/04 Redis
Java8利用Stream对列表进行去除重复的方法详解
2022/04/14 Java/Android
TypeScript 内置高级类型编程示例
2022/09/23 Javascript