js实现前端分页页码管理


Posted in Javascript onJanuary 06, 2017

用JS实现前端分页页码管理,可以很美观的区分页码显示(这也是参考大多数网站的分页页码展示),能够有很好的用户体验,这也是有业务需要就写了一下,还是新手,经验不足,欢迎指出批评!

首先先看效果图:

这是初始页面(也就是第一页)的界面,如果为第一页时,则首页和上一页按钮不可用,为了展示分页的效果,我当前的分页是一条一页

js实现前端分页页码管理

这是页码大于5页时展示的效果:1,2页始终始终显示(考虑到用户体验)

js实现前端分页页码管理

这是最后一页的效果图:

js实现前端分页页码管理

下面直接上js代码:

//页码显示
 $(function(){
  var dqPage = $("#dqPage").text();//得到当前页数
  dqPage = parseInt(dqPage);//得到的文本转成int
  var pageCount = $("#pageCount").text();//得到总页数
  pageCount = parseInt(pageCount);
  var i = 1;
  i = parseInt(i);
  var item="";
  var href = "这里是请求地址";
  if (pageCount <= 5 ) {//总页数小于五页,则加载所有页
  for (i; i <= pageCount; i++) {
   if (i == dqPage) {
   item += "<span class='disabled'>"+i+"</span>"; 
   }else{
   item += "<a href='"+href+i+"' >"+i+"</a>"; 
   }
  };
  $('#pageBtn').append(item);
  return;
  }else if (pageCount > 5) {//总页数大于五页,则加载五页
  if (dqPage < 5) {//当前页小于5,加载1-5页
   for (i; i <= 5; i++) {
   if (i == dqPage) {
    item += "<span class='disabled'>"+i+"</span>"; 
   }else{
    item += "<a href='"+href+i+"' >"+i+"</a>"; 
   }
   };
   if (dqPage <= pageCount-2) {//最后一页追加“...”代表省略的页
   item += "<span> . . . </span>";
   }
   $('#pageBtn').append(item);
   return;
  }else if (dqPage >= 5) {//当前页大于5页
   for (i; i <= 2; i++) {//1,2页码始终显示
   item += "<a href='"+href+i+"' >"+i+"</a>"; 
   }
   item += "<span> . . . </span>";//2页码后面用...代替部分未显示的页码
   if (dqPage+1 == pageCount) {//当前页+1等于总页码
   for(i = dqPage-1; i <= pageCount; i++){//“...”后面跟三个页码当前页居中显示
    if (i == dqPage) {
    item += "<span class='disabled'>"+i+"</span>"; 
    }else{
    item += "<a href='"+href+i+"' >"+i+"</a>"; 
    }
   }
   }else if (dqPage == pageCount) {//当前页数等于总页数则是最后一页页码显示在最后
   for(i = dqPage-2; i <= pageCount; i++){//...后面跟三个页码当前页居中显示
    if (i == dqPage) {
    item += "<span class='disabled'>"+i+"</span>"; 
    }else{
    item += "<a href='"+href+i+"' >"+i+"</a>"; 
    }
   }
   }else{//当前页小于总页数,则最后一页后面跟...
   for(i = dqPage-1; i <= dqPage+1; i++){//dqPage+1页后面...
    if (i == dqPage) {
    item += "<span class='disabled'>"+i+"</span>"; 
    }else{
    item += "<a href='"+href+i+"' >"+i+"</a>"; 
    }
   }
   item += "<span> . . . </span>";
   }
   $('#pageBtn').append(item);
   return;
  }
  }
 });
<%-- 得到当前页--%>
<span id="dqPage" hidden="hidden" class="disabled1 current">${page}</span>
<%-- js控制的页码显示在这个div中--%>
<div id="pageBtn" style="width: auto;display:inline-block !important;height: auto;">
</div>

这是实现js控制页码显示的所有步骤,可能有点麻烦,后续会继续优化,当然现在网上也有很多分页插件,全凭个人喜好。

至于 “首页,上一页,下一页,末页,以及跳转页,这些就看各自的需求实现了(我是用el表达式控制的)”

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
用于自动添加Digg This!按钮的JavaScript
Dec 23 Javascript
JS判断数组中是否有重复值得三种实用方法
Aug 16 Javascript
JS根据年月获得当月天数的实现代码
Jul 03 Javascript
判断日期是否能跨月查询的js代码
Jul 25 Javascript
JS自定义对象实现Java中Map对象功能的方法
Jan 20 Javascript
js正则表达式中exec用法实例
Jul 23 Javascript
javascript+canvas实现刮刮卡抽奖效果
Jul 29 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
Jun 04 Javascript
Angular2 http jsonp的实例详解
Aug 31 Javascript
微信小程序request请求后台接口php的实例详解
Sep 20 Javascript
angular 服务随记小结
May 06 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
Apr 10 Javascript
纯js实现倒计时功能
Jan 06 #Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
Jan 06 #Javascript
微信小程序开发教程-手势解锁实例
Jan 06 #Javascript
jQuery ajax的功能实现方法详解
Jan 06 #Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
Jan 06 #Javascript
Jqprint实现页面打印
Jan 06 #Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
Jan 06 #Javascript
You might like
在PHP中使用与Perl兼容的正则表达式
2006/11/26 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
基于Laravel-admin 后台的自定义页面用法详解
2019/09/30 PHP
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
比较新旧两个数组值得增加和删除的JS代码
2013/10/30 Javascript
jqgrid 表格数据导出实例
2013/11/21 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
jquery.cookie.js实现用户登录保存密码功能的方法
2016/04/15 Javascript
js 连续赋值的简单实现
2016/06/13 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
jQuery实现简单弹窗遮罩效果
2017/02/27 Javascript
实现jquery放大镜的两种方法
2018/02/22 jQuery
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
nodejs如何在package.json中设置多条启动命令
2020/03/16 NodeJs
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
编程语言Python的发展史
2014/09/26 Python
Django 2.0版本的新特性抢先看!
2018/01/05 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
python3解析库BeautifulSoup4的安装配置与基本用法
2018/06/26 Python
Python3并发写文件与Python对比
2019/11/20 Python
浅析Python3 pip换源问题
2020/01/06 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
2020/10/22 Python
使用canvas一步步实现图片打码功能的方法
2019/06/17 HTML / CSS
如何进行Linux分区优化
2016/09/13 面试题
幼儿园园长岗位职责
2013/11/26 职场文书
个人求职简历中英文自我评价
2013/12/16 职场文书
办公室员工岗位工作职责
2014/03/10 职场文书
优秀员工推荐信
2014/05/10 职场文书
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA