分页栏是网页上最常见不过的一个组件,本博文给出分页栏的一个web2.0
标准示例,并作简要分析。本分页栏的界面效果如下图所示:
[img]http://images.cnblogs.com/cnblogs_com/andycja/pagination.png[/img]
本分页栏组件具有以下特性:
1
、不论当前页码是哪一个,分页栏始终显示第一页的页码和最后一页的页码(如上图所示)。这样,用户不仅可以从最后的页码知道总共有多少页,还能方便地在最后一页和第一页之间导航。
2、使展现的页码个数(省略符也算一个)始终固定,比如固定为9
个。如下面两个图所示,当前页码为1
或9
(或任意其他数字)时,展现的页码个数都为9
个。这样,下一页按钮的位置始终保持不变,在做Ajax
分页时,用户可以在同一个位置多次点击下一页按钮,而不会因为按钮位置发生变化而得移动鼠标,极大地提高了用户体验。
[img]http://images.cnblogs.com/cnblogs_com/andycja/pagination2.png[/img]
[img]http://images.cnblogs.com/cnblogs_com/andycja/pagination.png[/img]
3、通过接口参数可以方便地设置展现的页码个数。genPaginationHtml()
接口的deviation
(偏移量)参数用于设置当前页码的左边或右边显示的页码个数。所以,总共展现的页码个数等于2*deviation+1
。比如,本示例中设置deviation
为4
,则总共展现9
个页码。
请您动手注释掉本示例以下源码,然后从界面上比较注释前后两者的区别。您还可以比较一下Google
的分页行为,您会发现其行为就是注释掉本示例以下代码后的行为。在编写本示例的时候我研究了Google
的分页行为,然后再逐步演变扩展。
[url=http://xiazai.jb51.net/201111/yuanma/pagination.rar]分页栏示例下载[/url]