分页栏的web标准实现


Posted in Javascript onNovember 01, 2011

分页栏是网页上最常见不过的一个组件,本博文给出分页栏的一个web2.0标准示例,并作简要分析。本分页栏的界面效果如下图所示:

分页栏的web标准实现

本分页栏组件具有以下特性:

1、不论当前页码是哪一个,分页栏始终显示第一页的页码和最后一页的页码(如上图所示)。这样,用户不仅可以从最后的页码知道总共有多少页,还能方便地在最后一页和第一页之间导航。

2、使展现的页码个数(省略符也算一个)始终固定,比如固定为9个。如下面两个图所示,当前页码为19(或任意其他数字)时,展现的页码个数都为9个。这样,下一页按钮的位置始终保持不变,在做Ajax分页时,用户可以在同一个位置多次点击下一页按钮,而不会因为按钮位置发生变化而得移动鼠标,极大地提高了用户体验。

分页栏的web标准实现分页栏的web标准实现

3、通过接口参数可以方便地设置展现的页码个数。genPaginationHtml()接口的deviation(偏移量)参数用于设置当前页码的左边或右边显示的页码个数。所以,总共展现的页码个数等于2*deviation+1。比如,本示例中设置deviation4,则总共展现9个页码。

请您动手注释掉本示例以下源码,然后从界面上比较注释前后两者的区别。您还可以比较一下Google的分页行为,您会发现其行为就是注释掉本示例以下代码后的行为。在编写本示例的时候我研究了Google的分页行为,然后再逐步演变扩展。

//使总码数固定 
if (curPage - startNum < deviation) { 
endNum += deviation - (curPage - startNum); 
endNum = endNum > pagesCount ? pagesCount : endNum; 
} 
if (endNum - curPage < deviation) { 
startNum -= deviation - (endNum - curPage); 
startNum = startNum < 1 ? 1 : startNum; 
};

最后给出genPaginationHtml(rowsCount, pageSize, curPage, toPage, deviation)接口参数说明如下:
rowsCount(number):记录总数。
pageSize(number):每页显示的记录数。
curPage(number):当前页页码。
toPage(string):一个函数名,实现跳到指定页的逻辑。
deviation(number):当前页码的左边或右边显示的页码个数。

分页栏示例下载

Javascript 相关文章推荐
基于jquery的表格排序
Sep 11 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
Apr 14 Javascript
JavaScript语言核心数据类型和变量使用介绍
Aug 23 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
Sep 14 Javascript
详解AngularJS controller调用factory
May 19 Javascript
JavaScript中Require调用js的实例分享
Oct 27 Javascript
Node.js实现发送邮件功能
Nov 06 Javascript
JavaScript实现简单动态进度条效果
Apr 06 Javascript
vue弹窗消息组件的使用方法
Sep 24 Javascript
vue实现双向绑定和依赖收集遇到的坑
Nov 29 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
Mar 08 Javascript
JavaScript实现队列结构过程
Dec 06 Javascript
jquery键盘事件使用介绍
Nov 01 #Javascript
JS鼠标事件大全 推荐收藏
Nov 01 #Javascript
EasyUI中的tree用法介绍
Nov 01 #Javascript
jQuery代码优化 事件委托篇
Nov 01 #Javascript
jQuery代码优化 遍历篇
Nov 01 #Javascript
jQuery代码优化 选择符篇
Nov 01 #Javascript
jQuery代码优化之基本事件
Nov 01 #Javascript
You might like
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
2016/05/15 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
详解ECMAScript typeof用法
2018/07/25 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
又拍云 Node.js 实现文件上传、删除功能
2018/10/28 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
python实现巡检系统(solaris)示例
2014/04/02 Python
基于python编写的微博应用
2014/10/17 Python
python3大文件解压和基本操作
2017/12/15 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
Python 记录日志的灵活性和可配置性介绍
2018/02/27 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
python重试装饰器的简单实现方法
2019/01/31 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
Python3爬虫mitmproxy的安装步骤
2020/07/29 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
html5调用app分享功能示例(WebViewJavascriptBridge)
2018/03/21 HTML / CSS
美国知名艺术画网站:Art.com
2017/02/09 全球购物
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
世界各地的旅游、观光和活动:Isango!
2019/10/29 全球购物
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
小学班长竞选演讲稿
2014/04/24 职场文书
应届毕业生求职信范文
2014/05/08 职场文书
卫校毕业生自我鉴定
2014/09/28 职场文书
个人政治思想总结
2015/03/05 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
2015年教务主任工作总结
2015/07/22 职场文书
导游词之井冈山
2019/11/20 职场文书
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers