分页栏的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生成随机数之random函数随机示例
Dec 20 Javascript
js将控件隐藏及display属性的使用介绍
Dec 30 Javascript
js+div实现文字滚动和图片切换效果代码
Aug 27 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
Mar 07 Javascript
js 实现一些跨浏览器的事件方法详解及实例
Oct 27 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
Jan 11 Javascript
bootstrap table实现单击单元格可编辑功能
Mar 28 Javascript
JS实现登录页密码的显示和隐藏功能
Dec 06 Javascript
利用JQUERY实现多个AJAX请求等待的实例
Dec 14 jQuery
vue根据值给予不同class的实例
Sep 29 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
Nov 05 Javascript
VUE安装使用教程详解
Jun 03 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
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
PHP实现微信发红包程序
2015/08/24 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
jquery实现图片左右切换的方法
2015/05/07 Javascript
JavaScript常用标签和方法总结
2015/09/01 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
小发现之浅谈location.search与location.hash的问题
2017/06/23 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
[01:11]回顾历届DOTA2国际邀请赛中国区预选赛
2017/06/26 DOTA
Python获取远程文件大小的函数代码分享
2014/05/13 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
Python 26进制计算实现方法
2015/05/28 Python
用matplotlib画等高线图详解
2017/12/14 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
python解析xml简单示例
2019/06/21 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
Python操作远程服务器 paramiko模块详细介绍
2019/08/07 Python
Python3.7安装keras和TensorFlow的教程图解
2020/06/18 Python
pandas之分组groupby()的使用整理与总结
2020/06/18 Python
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
Vision Direct比利时:在线订购隐形眼镜
2019/08/27 全球购物
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
蒂娜商店:Tiina the Store
2019/12/07 全球购物
哈理工毕业生的求职信
2013/12/22 职场文书
办理信用卡工作证明
2014/01/11 职场文书
青年文明号复核材料
2014/02/11 职场文书
部队万能检讨书
2014/02/20 职场文书
企业文化标语口号
2014/06/09 职场文书
2015世界地球日活动总结
2015/02/09 职场文书
公司晚会主持词
2019/04/17 职场文书
《悲惨世界》:比天空更广阔的是人的心灵
2020/01/16 职场文书
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python