原生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 实现二级/三级/多级联动菜单的思路及代码
Apr 08 Javascript
jquery js 重置表单 reset()具体实现代码
Aug 05 Javascript
如何获取select下拉框的值(option没有及有value属性)
Nov 08 Javascript
js中实现字符串和数组的相互转化详解
Jan 24 Javascript
纯js三维数组实现三级联动效果
Feb 07 Javascript
jQuery常用选择器详解
Jul 17 jQuery
ionic2中使用自动生成器的方法
Mar 04 Javascript
iview中Select 选择器多选校验方法
Mar 15 Javascript
vue源码解析之事件机制原理
Apr 21 Javascript
微信小程序实现简单评论功能
Nov 28 Javascript
详解如何在Vue项目中导出Excel
Apr 19 Javascript
Vue的Eslint配置文件eslintrc.js说明与规则介绍
Feb 03 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中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
2011/03/23 PHP
php定界符
2014/06/19 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
多个iframe自动调整大小的问题
2006/09/18 Javascript
用 JavaScript 迁移目录
2006/12/18 Javascript
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
js前端实现图片懒加载(lazyload)的两种方式
2017/04/24 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
[03:22]DOTA2超级联赛专访单车:找到属于自己的英雄
2013/06/08 DOTA
[01:02:02]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第二局
2016/02/25 DOTA
wxpython中利用线程防止假死的实现方法
2014/08/11 Python
在Django中同时使用多个配置文件的方法
2015/07/22 Python
python迭代dict的key和value的方法
2018/07/06 Python
使用Python函数进行模块化的实现
2019/11/15 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
Pytorch实现基于CharRNN的文本分类与生成示例
2020/01/08 Python
python 函数中的参数类型
2020/02/11 Python
Python识别处理照片中的条形码
2020/11/16 Python
如何用Django处理gzip数据流
2021/01/29 Python
CSS3的transition和animation的用法实例介绍
2014/08/20 HTML / CSS
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
英国度假别墅预订:Sykes Cottages
2017/06/12 全球购物
家乐福台湾线上购物网:Carrefour台湾
2020/09/15 全球购物
预备党员入党思想汇报
2014/01/04 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
护士求职简历自我评价
2015/03/10 职场文书
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python