在页面上,当数据量过大的时候,经常会采用到分页的方式来展示数据,自然而然的就会有一个分页条,则比如CSDN采用则是
第一页 上一页 下一页 最后一页 下拉框
而很多时候,数据量过大到下拉框都不十分友好的形式,我们会采用另外一种方式。
假如当前选择的是第三页:
第一页 上一页 3 4 5 6 7 下一页 最后一页
以当前页面为起点,向后显示固定数目的页数(没有超过最后一页的前提)
另外更友好的方式是不仅给用户显示后面的页数,更方便的也显示前面的页数,是的用户的当前页在显示页面序列号的中间
第一页 上一页 1 2 3 4 5 下一页 最后一页
这个时候,如果用户选择的是前几页的话,则需要考虑是否越界并且将页数相应的往后延伸,比如当前是第二页,显示页面数目是5
第一页 上一页 1 2 3 4 5 下一页 最后一页
另外如果第五页超过了最多的页数,则这个时候就要掐断啦。
虽然是一个小小的分页器,但是判断的情况也有好几种
1)正常情况下,显示制定数目的页数,将当前页数放在中间。
2)判断前面是否越界,则向后延伸,保证显示数量
3)判断后面是否越界
4)判断前后是否越界
下面是随手写了一个小小的分页计算器,以备下次做页面的时候可以用到
原理很简单,就是将从1-pageCount的数据当作一个有刻度队列,用固定长度的数据段当作标尺去移动,直到触发结束条件即可,可以少写几个if-else判断,真正合并了代码后实现只需要差不多4行就够了