分页栏的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执行顺序
Nov 09 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
Nov 17 Javascript
Node.js实现简单聊天服务器
Jun 20 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
Mar 03 Javascript
innerHTML中标签可以换行的方法汇总
Aug 14 Javascript
jQuery循环遍历子节点并获取值的方法
Apr 14 Javascript
用jquery获取自定义的标签属性的值简单实例
Sep 17 Javascript
基于Vue实现后台系统权限控制的示例代码
Aug 29 Javascript
解决layui 复选框等内置控件不显示的问题
Aug 14 Javascript
微信小程序实现获取准确的腾讯定位地址功能示例
Mar 27 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
Aug 16 Javascript
vue移动端下拉刷新和上滑加载
Oct 27 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
php接口与接口引用的深入解析
2013/08/09 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
解析arp病毒背后利用的Javascript技术附解密方法
2007/08/06 Javascript
Firefox window.close()的使用注意事项
2009/04/11 Javascript
javascript 手动给表增加数据的小例子
2013/07/10 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
JavaScript来实现打开链接页面的简单实例
2016/06/02 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
2018/10/23 Javascript
小程序实现五星点评效果
2018/11/03 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
用Python进行TCP网络编程的教程
2015/04/29 Python
使用Python3制作TCP端口扫描器
2017/04/17 Python
python中的插值 scipy-interp的实现代码
2018/07/23 Python
Python小进度条显示代码
2019/03/05 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
2019/08/20 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
2020/06/18 Python
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
C#基础面试题
2016/10/17 面试题
英语演讲稿范文
2014/01/03 职场文书
体育教师求职信
2014/05/24 职场文书
领导班子四风问题个人对照检查材料
2014/10/04 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
全国法院系统开展党的群众路线教育实践活动综述(全文)
2014/10/25 职场文书
导游欢迎词范文
2015/01/23 职场文书
异地恋情人节寄语
2015/02/28 职场文书
2015小学教师年度考核工作总结
2015/05/12 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python