首先我们来分析一下谷歌分页的实现,根据是实现来计算出他的算法,我们在这里呢,只实现每屏最大显示数据位六页:如
1 2 3 当前页是1 1 2 3
1 2 3 4 当前页是2 起始值1 未页 4
1 2 3 4 5 当前页是3 起始值1 未页 5
1 2 3 4 5 6 当前页是4 起始值1 未页 6
1.首先我们先实现开始时显示三页并且当前页不可点击,当点击第二页是出现第四页以此类推 从上图得知 当前页小于等于4时 起始页为1 末页=当前页+2
startindex=1;//为每屏显示的页数的起始索引 endindex=nowpage+2;;//为每屏显示的页数的结束索引,nowpage当然就是当前页了
注意: 求和值后的endindex 如果endindex大于总页数
那么: this.endindex=this.countpage;
当点击第2页的时候的效果
当点击第3页时
当点击第4页时我们出来第六页,好现在已经是每屏显示的最大条数(假如我们现在的总页数超过六页那么我们看第5页)
那么当超过最大显示页数时,是什么样的呢,我们先分析一下
当大于4时
2 3 4 5 6 7 当前页是5 起始值是2 未页 7
3 4 5 6 7 8 当前页是6 起始值是3 未页 8
4 5 6 7 8 9 当前页是7 起始值是4 未页 9
5 6 7 8 9 10 当前页是8 起始值是5 未页 10
从试图当中我们不难看出这其中的规律,所以借下来我我们要实现的功能如图
这是第5页的现实效果,现在我们可一看到当总页数大于每屏最大显示条数时,前面的第一页就消失了
那么当总最后不足以显示6页的时候呢,好,那么我们就从最后一页开始回显6条,如图
承接上一篇博客
2.那么下面我们就按照上面的分析,来完成实现的算法 首先我们先分析一下分页用到的变量我们首先要定当前页,还有总记录数和以及每页显示条数和每屏的开始索引和结束索引,以及总的页数,和要查询当前页的信息,以及每屏显示的最大页数值 定义好了这些下面我们就写我们的算法
//这是关于分页的逻辑计算,算法多多营养多多
if(endindex>lastPage){
endindex=lastPage;//其中endiex是索引结束,lastPage//是总的页数 }if(nowPage<=4&&nowPage+2<=lastPage){ endindex=nowPage+2;//nowPage代表当前页 }if(nowPage>4&&nowPage+2<=lastPage){ startindex=nowPage-3; endindex=nowPage+2; }if(nowPage>4&&nowPage+2>lastPage&&nowPage>=6){ endindex=lastPage; startindex=lastPage-5; }
if(lastPage<=6){//这里的6当然就是每屏显示的最多页数了,当然可以根据自己的喜好改变也数那就要改变算法了
if(nowPage>=3)
endindex=nowPage+2>lastPage?lastPage:nowPage+2;
}
3.承接上文写一篇薄竟然要我分散份写,有么有搞错,莫非我真的out了嘛 下面我们要说的就是如何实现当点击某页的时候连接就变成红色并且不能再点,其实这个很简单的啦,只要用标签去控制连接就可以了,那么下面我们就具体操作一下 我想大家对这个都不算陌生吧,就是判断点击的页数是不是当前页如果是,就不显连接并变成红色,反之···
<c:forEach begin="${startindex}" end="${endindex}" var="ph">
<c:choose>
<c:when test="${nowPage==ph}"> <a><font color="red"><span>${ph}</span></font></a> </c:when>
<c:otherwise>
<a href="${pageContext.request.contextPath}/studentServlet2?nowPage=${ph}">[<span>${ph}</span>]</a>
</c:otherwise>
</c:choose>
</c:forEach>
好,以上就是仿谷歌分页的“兔”种算法(一)希望能给大家带来点点帮助 在这夜深人静的时刻,我们敲着代码,让灵感飞一会,其实我们敲得不是寂寞,是网络 在仿谷歌分页的“兔”种算法(二),我们将把page封装,并且实现输入想要查看的页 数,然后页面跳转功能 菜菜~~~暴走中~~~未完待续······
- 大小: 3.8 KB
- 大小: 4 KB
- 大小: 4.5 KB
- 大小: 3.7 KB
- 大小: 4.7 KB
- 大小: 3.2 KB
分享到:
相关推荐
模拟仿真请求分页调度算法OPT、FIFO、LRU、LFU、CLOCK等模拟页面调度算法,并提供性能比较分析功能。用MFC界面实现
asp 数字分页 仿百度分页 仿谷歌分页,可根据实际需要调整,带数据库。
仿谷歌分页,分页,最简单的分页。其中包括对象的封装。
仿google分页实例代码,很好的PHP分页代码。
仿百度分页代码|谷歌分页代码范例,请大家做个参考
仿百度分页,谷歌分页页码处理 解决分页太多,智能始终显示一部分的效果 可以依照这个思路自己改,很好上手,分页思想 都有注释
采用近期最少使用(LFU)算法仿真请求分页系统 1. 设计目的:用高级语言编写和调试一个内存分配程序,加深对内存分配算法的理解。 2. 设计要求: 1, 实现请求分页存储管理方式的页面置换算法:近期最少使用算法(LFU...
PHP通用分页类(仿Google样式)。本代码是用于分页用的,只需提供记录总数与每页显示数两个参数,无需指定URL,链接由程序生成。方便用于检索结果分页,表单采用GET方法提交,可保证在诸如查询之,删除之类的操作时,...
模仿google做的分页效果,内容是ajax获取,并且有表格的隔行变色效果,如此多的效果集合,大家学习
jsp分页技术算法,大家应该能接受这种算法,因为这个算法不难.希望大家好好研究吧
本系统实现分页存储的多种算法,包括最佳置换算法(OPT)(理想置换算法)、先进现出置换算法(FIFO、最近最久未使用(LRU)算法、简单Clock置换算法,可以灵活选择其中一种算法。
界面简单美观,非常不错的js分页控件.仿淘宝分页按钮效果简单美观易实用当分页JS控件
仿淘宝分页插件 使用简单 jquery代码
ThinkPhp仿百度分页类,在ThinkPhp3.1.3下测试通过 Author: 泡泡堂 <46445280@qq.com> 参照 ThinkPhp3.1.3 及 ThinkPhp3.2.1护展包下的 Page.class.php 说明:在ThinkPhp3.1.3下测试通过,其它版本未做测试 ...
一个高效率的struts分页算法 遵循mvc开发的规范。便捷好维护
动态分页算法java代码
课程设计:采用lfu算法仿真请求分页系统.doc
仿百度的分页控件风格,每次用户在10个页码中选择需要跳转到的页数。
java仿GOOGLE数字分页,内含20来种分页样式。 jquery分页。