JS实现前端动态分页码代码实例


Posted in Javascript onJune 02, 2020

思路分析:有3种情况

第一种情况,当前页面curPage < 4

JS实现前端动态分页码代码实例

第二种情况,当前页面curPage == 4

JS实现前端动态分页码代码实例

第三种情况,当前页面curPage>4

JS实现前端动态分页码代码实例

此外,还要考虑,当前页码 curPage < pageTotal(总页码)-2,才显示 ...

首先,先是前端的布局样式

<body>
   /*首先,在body中添加div id="pagination" */
   <div id="pagination">
<!-- 后面会在JS中动态追加 ,此处为了,实现前端效果,所以注册
<a id="prevBtn"><</a>
<a id="first">1</a>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >2</a>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >3</a>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >4</a>
<span>...</span>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" id="last">10</a>
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" id="nextBtn">></a>
-->

   </div>
</body>

其次,是css代码

*{
      margin: 0;
      padding: 0;
    }
    #pagination{
      width: 500px;
      height: 100px;
      border: 2px solid crimson;
      
      margin: 50px auto ;
      padding-top: 50px ;
      padding-left: 50px;
    }
    
    .over,.pageItem{
      float: left;
      display: block;
      width: 35px;
      height: 35px;
      line-height: 35px;
      text-align: center;
    }
    
    .pageItem{
      border: 1px solid orangered;
      text-decoration: none;
      color: dimgrey;
      margin-right: -1px;/*解决边框加粗问题*/
    }
    .pageItem:hover{
      background-color: #f98e4594;
      color:orangered ;
    }
    .clearfix{
      clear: both;
    }
    .active{
      background-color: #f98e4594;
      color:orangered ;
    }
    .banBtn{
      border:1px solid #ff980069;
      color: #ff980069;
    }
    #prevBtn{
      margin-right: 10px;
    }
    #nextBtn{
      margin-left: 10px;
    }

JavaScript代码

<script type="text/javascript">
  
  var pageOptions = {pageTotal:10,curPage:7,paginationId:''};
  dynamicPagingFunc(pageOptions);
  
  function dynamicPagingFunc(pageOptions){
    var pageTotal = pageOptions.pageTotal || 1;
    var curPage = pageOptions.curPage||1;
    var doc = document;
    var paginationId = doc.getElementById(''+pageOptions.paginationId+'') || doc.getElementById('pagination');
    var html = '';
    if(curPage>pageTotal){
      curPage =1;
    }
    /*总页数小于5,全部显示*/
    if(pageTotal<=5){
      html = appendItem(pageTotal,curPage,html);
      paginationId.innerHTML = html;
    }
    /*总页数大于5时,要分析当前页*/
    if(pageTotal>5){
      if(curPage<=4){
        html = appendItem(pageTotal,curPage,html);
        paginationId.innerHTML = html;
      }else if(curPage>4){
        html = appendItem(pageTotal,curPage,html);
        paginationId.innerHTML = html;
      }
    }
  }
  
  function appendItem(pageTotal,curPage,html){
    var starPage = 0;
    var endPage = 0;
    
    html+='<a id="prevBtn"><</a>';
    
    if(pageTotal<=5){
      starPage = 1;
      endPage = pageTotal;  
    }else if(pageTotal>5 && curPage<=4){
      starPage = 1;
      endPage = 4;
      if(curPage==4){
        endPage = 5;
      }
    }else{
      if(pageTotal==curPage){
        starPage = curPage-3;
        endPage = curPage;
      }else{
        starPage = curPage-2;
        endPage = curPage+1;
      }
      html += '<a id="first">1</a><span>...</span>';
    }
    
    for(let i = starPage;i <= endPage;i++){
      if(i==curPage){
        html += '<a id="first">'+i+'</a>';
      }else{
        html += '<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >'+i+'</a>';
      }
    }
    
    if(pageTotal<=5){
      html+='<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" id="nextBtn">></a>';
    }else{
      if(curPage<pageTotal-2){ 
        html += '<span>...</span>';
      }
      if(curPage<=pageTotal-2){
        html += '<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >'+pageTotal+'</a>';
      }
      html+='<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" id="nextBtn">></a>';
    }
    return html;
  }
  
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
Nov 03 Javascript
JavaScript Array Flatten 与递归使用介绍
Oct 30 Javascript
javascript之Partial Application学习
Jan 10 Javascript
js中取得变量绝对值的方法
Jan 03 Javascript
JavaScript实现随机替换图片的方法
Apr 16 Javascript
Javascript对象Clone实例分析
Jun 09 Javascript
JavaScript对HTML DOM使用EventListener进行操作
Oct 21 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
May 18 Javascript
js数组操作方法总结(必看篇)
Nov 22 Javascript
jQuery中库的引用方法
Jan 06 jQuery
使用js实现将后台传入的json数据放在前台显示
Aug 06 Javascript
JavaScript实现原型封装轮播图
Dec 27 Javascript
在Vue中创建可重用的 Transition的方法
Jun 02 #Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
Jun 02 #jQuery
2020淘宝618理想生活列车自动领喵币js脚本的代码
Jun 02 #Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
Jun 02 #Javascript
2020京东618叠蛋糕js脚本(亲测好用)
Jun 02 #Javascript
vue项目在webpack2实现移动端字体自适配功能
Jun 02 #Javascript
React实现类似淘宝tab居中切换效果的示例代码
Jun 02 #Javascript
You might like
php DOS攻击实现代码(附如何防范)
2012/05/29 PHP
利用php实现禁用IE和火狐的缓存问题
2012/12/03 PHP
PHP不用递归实现无限分级的例子分享
2014/04/18 PHP
php绘制一条直线的方法
2015/01/24 PHP
PHP开发注意事项总结
2015/02/04 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
如何用javascript控制上传文件的大小
2006/10/26 Javascript
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
jQuery 创建Dom元素
2010/05/07 Javascript
Javascript调用C#代码
2011/01/17 Javascript
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
jsp 网站引入外部css或者js失效问题解决
2016/10/31 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
分享bootstrap学习笔记心得(组件及其属性)
2017/01/11 Javascript
JS中promise化微信小程序api
2018/04/12 Javascript
JS实现根据数组对象的某一属性排序操作示例
2019/01/14 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
vue界面发送表情的实现代码
2020/09/11 Javascript
Python的Django框架下管理站点的基本方法
2015/07/17 Python
Python递归函数特点及原理解析
2020/03/04 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
HTML5+css3:3D旋转木马效果相册
2017/01/03 HTML / CSS
实习评语
2013/12/16 职场文书
公司管理建议书范文
2014/03/12 职场文书
新员工试用期自我评价
2015/03/10 职场文书
护士自荐信范文
2015/03/25 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
详解Java实现数据结构之并查集
2021/06/23 Java/Android
spring cloud 配置中心客户端启动遇到的问题
2021/09/25 Java/Android