原生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通过Ajax方式来提交Form表单的具体实现
Nov 07 Javascript
javascript右下角弹层及自动隐藏(自己编写)
Nov 20 Javascript
借助javascript代码判断网页是静态还是伪静态
May 05 Javascript
关于Javascript加载执行优化的研究报告
Dec 16 Javascript
JS控制弹出新页面窗口位置和大小的方法
Mar 02 Javascript
BootStrap Table 获取同行不同列元素的方法
Dec 19 Javascript
BootStrap实现轮播图效果(收藏)
Dec 30 Javascript
js实现微博发布小功能
Jan 12 Javascript
微信小程序实现图片预加载组件
Jan 18 Javascript
手写简单的jQuery雪花飘落效果实例
Apr 22 jQuery
JavaScript常见JSON操作实例分析
Aug 08 Javascript
如何在vue中使用jointjs过程解析
May 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
php获得url参数中具有&amp;的值的方法
2014/03/05 PHP
jQuery Mobile + PHP实现文件上传
2014/12/12 PHP
PHP代码维护,重构变困难的4种原因分析
2016/01/25 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
关于document.cookie的使用javascript
2008/04/11 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
js getBoundingClientRect使用方法详解
2019/07/17 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
vue中实现回车键登录功能
2020/02/19 Javascript
Vue切换div显示隐藏,多选,单选代码解析
2020/07/14 Javascript
python实现ip查询示例
2014/03/26 Python
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
python&amp;MongoDB爬取图书馆借阅记录
2016/02/05 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
2018/01/03 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
python 使用装饰器并记录log的示例代码
2019/07/12 Python
Python 最强编辑器详细使用指南(PyCharm )
2019/09/16 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
Chemist Warehouse官方海外旗舰店:澳洲第一连锁大药房
2017/08/25 全球购物
环境工程求职简历的自我评价范文
2013/10/24 职场文书
迎元旦广播稿
2014/02/22 职场文书
工地宣传标语
2014/06/18 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
教书育人演讲稿
2014/09/11 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
党员先进事迹材料
2014/12/19 职场文书