扫码关注官方订阅号
点击切换的功能已经实现,考虑到如果内容条数很多的话,页码也很多,如果只显示固定页码数,超过部分用...代替。点击上一页和下一个,...位置可能变化,对于这个的规律不是很懂,请大家给我讲一下思路,谢谢!
学习是最好的投资!
好久之前,参考论坛分页后端模板输出逻辑弄过一个.
function makePage (total, page) {//生成页码 var pages = []; function createPage(index){//单页码生成 if(page==index){ pages.push('<strong>' + page + '</strong>'); }else{ pages.push('<a class="page-link" href="javascript:void(0);">' + index + '</a>'); } } if(total<=10){ for(var i=1;i<=total;i++){ createPage(i); } }else{ if(page <= 5) {//总页数大于10且当前页远离总页数(小于5) for(var i = 1; i <=5; i++) { createPage(i); } pages.push(' … <a class="page-link" href="javascript:void(0);">' + total + '</a>'); }else if(page>=total-3){//总页数大于10且当前页接近总页数(小于总页数-3) pages.push('<a class="page-link" href="javascript:void(0);">' + 1 + '</a> …'); for(var i=total-4;i<=total;i++){ createPage(i); } }else{ //除开上面两个情况 pages.push('<a class="page-link" href="javascript:void(0);">' + 1 + '</a> … '); for(var i=page-2;i<=page+2;i++){ createPage(i); } pages.push(' … <a class="page-link" href="javascript:void(0);">' + total + '</a>'); } } if (page > 1 && total > 1) {// 上一页 pages.unshift('<a class="js-page-change page-prev" href="javascript:void(0);">上页</a>'); } else { pages.unshift('<span>上页</span>'); } if (page < total && total > 1) {// 下一页 pages.push('<a class="js-page-change page-next" href="javascript:void(0);">下页</a>'); } else { pages.push('<span>下页</span>'); } contentDom.html(tpl.replace("{pages}", pages.join(" "))); }
截取部分代码, 这个是生成当前页的总页数,规则是当页码不超过10的时候,全部显示,当大于10页时,根据当前页做处理。
如果当前页小于5, 则显示 前面五个页码+省略号+最后一页。
如果当前页是接近最后几页的,输出 首页码+省略号+后面几页(包括当前页)
剩下的情况,输出首页+省略号+中间几页(包含当前页)+省略号+最后一页。
好像挺复杂的= =,没整理过。参考下~
论坛上的逻辑会前X个后X个显示、中间...
这种做法最后后面跟一个输入框、方便输入页码跳转
然后你的前X和后X可以做成动态、全局中定一个当前页数、上一页就去取这个数减1然后发送请求、以此类推
需要一个总页数、一个当前页、一个size也就是显示几个、剩下的按照这个去封装就好了
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
好久之前,参考论坛分页后端模板输出逻辑弄过一个.
截取部分代码, 这个是生成当前页的总页数,规则是当页码不超过10的时候,全部显示,当大于10页时,根据当前页做处理。
如果当前页小于5, 则显示 前面五个页码+省略号+最后一页。
如果当前页是接近最后几页的,输出 首页码+省略号+后面几页(包括当前页)
剩下的情况,输出首页+省略号+中间几页(包含当前页)+省略号+最后一页。
好像挺复杂的= =,没整理过。参考下~
论坛上的逻辑会前X个后X个显示、中间...
这种做法最后后面跟一个输入框、方便输入页码跳转
然后你的前X和后X可以做成动态、全局中定一个当前页数、上一页就去取这个数减1然后发送请求、以此类推
需要一个总页数、一个当前页、一个size也就是显示几个、剩下的按照这个去封装就好了