原生javascript实现的分页插件pagenav
作者:hebedich 发布时间:2024-06-14 23:55:33
标签:javascript,分页插件,pagenav
这一款是用原生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);
};
};
效果如下:


猜你喜欢
- 一个网站的导航就相当于是一条路的路标,不同的是,网站的不同栏目页的入口远远比马路要来得复杂,所以一个清晰的导航设计对于一个网站的意义远远大于
- 问题在使用matplotlib作图的时候,有的时候会遇到画图时坐标轴重叠,显示不全和图片保存时不完整的问题。如下:解决方案画图时重叠或者显示
- Memoization 是一种将函数返回值缓存起来的方法,在 Lisp, Ruby, Perl, Python 等语言中使用非常广泛。随着
- 本文实例为大家分享了python实现自动打卡小程序的具体代码,供大家参考,具体内容如下"""湖南大学疫情防控每
- 前言在机器学习中,我们会经常和矩阵打交道。在矩阵的运算中,python默认的输出是浮点数,但是如果我们想要矩阵的元素以分数的形式显示,可以通
- 前言:数据库非常重要,程序的数据增删改查需要数据库支持。python处理数据库非常简单。而且不同类型的数据库处理逻辑方式大同小异。本文以sq
- //遍历option和添加、移除optionfunction changeShipMethod(shipping){ var le
- 一、查看定时策略是否开启show variables like '%event_scheduler%'; * on
- 什么多态:同一事物有多种形态为何要有多态=》多态会带来什么样的特性,多态性多态性指的是可以在不考虑对象具体类型的情况下而直接使用对象多态指的
- 超文本传输协议http构成了万维网的基础,它利用URI(统一资源标识符)来识别Internet上的数据,而指定文档地址的URI被称为URL(
- 1.JOIN和UNION区别 join 是两张表做交连后里面条件相同的部分记录产生一个记录集, union是产生的两个记录集(字段要一样的)
- 在MySQL中,一个字符串中,如果某个序列具有特殊的含义,则这个序列以反斜线符号(‘\’)开头,称为转义字符。常见的转义字符:\0 ASCI
- 在自己的网站主页上增加社会化分享按钮,是有效提高自己网站流量的一种方法。今天我在无争围棋网上增加了社会化按钮,根据我个人的习惯,我选择了豆瓣
- 昨晚看了用svg如何制作富有动态的tooltip,于是今天就心血来潮学着做一下,于是也成功做出来,也明白其中的原理,收获颇多阿!接下来要多去
- 最近接触到一个心理学方面的理论:心流理论。大意是一种个人精力完全投注在某件事情上的感觉。心流产生时会有高度的兴奋和充实感。其实也就是说人在进
- 有时候想为我们的网页提供多语言支持,如果一种语言用一张网页来做实在太麻烦了,幸好Google提供了语言工具功能,下面介绍如何利用它来实现网页
- 本文实例为大家分享了Django实现上传图片的具体代码,供大家参考,具体内容如下1.设置存放上传的图片的文件夹settings.pyMEDI
- pandas返回缺失值位置有的时候我们可能需要获取一些缺失值的信息,因此我们需要获取这些缺失值在DataFrame中的位置。假如我们的Dat
- 在开发的过程中,几乎不可能一次性就能写出毫无破绽的程序,断点调试代码是一个普遍的需求。作为前端开发工程师,以往我们开发的JavaScript
- 1. 列表使用sum, 如下代码,对1维列表和二维列表,numpy.sum(a)都能将列表a中的所有元素求和并返回,a.sum()用法是非法