原生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页面不刷新时全选择,全删除(GridView)
Apr 14 Javascript
JQuery 获取和设置Select选项的代码
Feb 07 Javascript
利用谷歌地图API获取点与点的距离的js代码
Oct 11 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
Nov 26 Javascript
基于JavaScript实现动态添加删除表格的行
Feb 01 Javascript
常用的JQuery函数及功能小结
Mar 24 Javascript
基于javascript数组实现图片轮播
May 02 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
Oct 04 Javascript
AngularJS实现动态编译添加到dom中的方法
Nov 04 Javascript
JS实现图片放大缩小的方法
Feb 15 Javascript
详解基于vue的移动web app页面缓存解决方案
Aug 03 Javascript
5个你不知道的JavaScript字符串处理库(小结)
Jun 01 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全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
PHP对象Object的概念 介绍
2012/06/14 PHP
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
2015/12/02 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
js学习总结_基于数据类型检测的四种方式(必看)
2017/07/04 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
关于JavaScript中的this指向问题总结篇
2017/07/23 Javascript
vue中实现左右联动的效果
2018/06/22 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
vue 组件的封装之基于axios的ajax请求方法
2018/08/11 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
微信小程序点餐系统开发常见问题汇总
2019/08/06 Javascript
js实现双色球效果
2020/08/02 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
python 同时运行多个程序的实例
2019/01/07 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
python flask框架实现重定向功能示例
2019/07/02 Python
pytorch:model.train和model.eval用法及区别详解
2020/02/20 Python
Python爬虫与反爬虫大战
2020/07/30 Python
python上下文管理的使用场景实例讲解
2021/03/03 Python
在html页面中取得session中的值的方法
2020/08/11 HTML / CSS
phpquery中文手册
2021/03/18 PHP
世界最大的海报和艺术印刷商店:AllPosters.com
2017/02/01 全球购物
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
2013年学期结束动员演讲稿
2014/01/07 职场文书
面试必备的求职信
2014/05/25 职场文书
教师节活动总结
2014/08/29 职场文书
国庆节演讲稿范文2014
2014/09/19 职场文书
2015年为民办实事工作总结
2015/05/26 职场文书