分页栏的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 相关文章推荐
js模拟滚动条(横向竖向)
Feb 22 Javascript
解决ueditor jquery javascript 取值问题
Dec 30 Javascript
jQuery实现可用于博客的动态滑动菜单
Mar 09 Javascript
JavaScript检测上传文件大小的方法
Jul 22 Javascript
javascript实现拖动元素交换位置
Nov 29 Javascript
自动化测试读写64位操作系统的注册表
Aug 15 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
Aug 19 Javascript
javascript数组常用方法汇总
Sep 10 Javascript
jQuery实现的自定义滚动条实例详解
Sep 20 Javascript
微信通过页面(H5)直接打开本地app的解决方法
Sep 09 Javascript
JavaScript通过mouseover()实现图片变大效果的示例
Dec 20 Javascript
JavaScript引用类型RegExp基本用法详解
Aug 09 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
linux iconv方法的使用
2011/10/01 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
php中namespace use用法实例分析
2016/01/22 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
测试你的JS的掌握程度的代码
2009/12/09 Javascript
循环 vs 递归浅谈
2013/02/28 Javascript
js数组的操作详解
2013/03/27 Javascript
jquery中show()、hide()和toggle()用法实例
2015/01/15 Javascript
javascript正则表达式使用replace()替换手机号的方法
2015/01/19 Javascript
JavaScript中的类与实例实现方法
2015/01/23 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
jquery实现左右滑动菜单效果代码
2015/08/27 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
js剪切板应用clipboardData实例解析
2016/05/29 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
2018/11/08 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
[02:16]完美世界DOTA2联赛PWL S3 集锦第三期
2020/12/21 DOTA
解决python ogr shp字段写入中文乱码的问题
2018/12/31 Python
Python定时任务APScheduler原理及实例解析
2020/05/30 Python
python logging 重复写日志问题解决办法详解
2020/08/04 Python
python 绘制场景热力图的示例
2020/09/23 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
消防安全检查制度
2014/02/04 职场文书
产品质量承诺书
2014/03/27 职场文书
工程质量承诺书
2014/03/27 职场文书
学校学雷锋活动总结
2014/06/26 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
赢在中国观后感
2015/06/02 职场文书
三八妇女节致辞
2015/07/31 职场文书
小学三年级语文教学反思
2016/03/03 职场文书