纯JavaScript实现的分页插件实例


Posted in Javascript onJuly 14, 2015

本文实例讲述了纯JavaScript实现的分页插件。分享给大家供大家参考。具体如下:

//总条数(必填)
var Num=Number(<?php echo $count;?>)
//当前页(必填)
var index = Number(<?php echo $page;?>);
/* //每页的条数(可选,默认每页10条) */
var pageNum=Number(10); 
/* //最大显示的页码的数目(可选,默认显示5个页码,页码数目必须大于等于1) */
var maxPageNum=Number(5);
//以下可忽略
//计算得出总页数
var count = (Num%pageNum)>0?(Num/pageNum+1):(Num/pageNum);
count=Math.floor(count);//取整转化为数据类型
//显示的最小页码,
var first=1;
//显示的最大页码,首先last<=count;其次last是小于等于count的最大数//last=index+maxPageNum/2;
var last =1;
var decrease=Math.floor(maxPageNum/2);//当前页向上增加值
var increase=Math.floor(maxPageNum/2);//当前页向下减少值
if(maxPageNum>=1){
 if(maxPageNum==1){//最多显示一页时
  first=index<=count?index:count; 
  last=index<=count?index:count;  
 }else{
   //first要大于零
   first=(index-decrease);
   while(first<=0){
    first++;
   } 
   //first判断显示的最后一页
   if((count-index)<=decrease){
    var diff=count-first;
    while(diff<maxPageNum-1){
     if(first==1){
      break;
     }else{
      --first;
      diff=count-first;
     }
    }
   }
   //last要小于count
   last=(index+increase);
   while(last>=1){
    if(last<=count){
     break;
    }
    last--;
   } 
   //last//判断显示的最后一页与maxPageNum的关系
   last=last>=maxPageNum?last:(maxPageNum>count?count:maxPageNum);
 }
}else{
 alert("至少需要显示一个页码!");
}
var prev = index - 1;//上一页
var next = index+ 1;//下一页 
var str = "<tr>";
if(count==0){
 str += "<td>共<a href='#'>0</a>页</td><td>";
}else if(index>count||index<=0){
 str="<td style='color:blue;' >页码超出范围</td>";
}else if (count > 0) {
 str += "<td>";
 if(first>1){
  str += "  <span style='color:#4169E1;' >...</span>  ";
 }
 var i=1;
 for(i=first;i<=last; i++){
  if(i==index){
   str += "  <a href='#' style='color:#4169E1;' onclick='submit(" + i + ");'>[" + i+ "]</a>  ";
  }else{
   str += "  <a href='#' onclick='submit(" + i + ");'>" + i+ "</a>  ";
  }
 } 
  if(last<count){
   str += "  <span style='font-size:16px;color:#4169E1;' >...</span>  "; 
  }
  str+="</td><td style='font-size: 14px;'>共<a href='#first' style='color:#4169E1;font-size: 16px;' >"+ Num +"</a>条</td>";
  /* if(index!=1){
   str +="<td style='width:60px;font-family: 微软雅黑;font-size: 14px;' ><a href='#' id='prev' onclick='submit(" + prev+ ");'>上一页</a></td>"; 
  }
  if(index<count){
   str +="<td style='width:60px;font-family: 微软雅黑;font-size: 14px;'><a href='#' id='next' onclick='submit("+ next + ");'>下一页</a></td>";
  }*/
  if(index!=1&&count>1){
   str += "<td style='width:40px;font-family: 微软雅黑;font-size: 14px;white-space: nowrap;'>  <a href='#' id='first' name='first' onclick='submit(1);'>首页</a>  </td>";
  }
  if(index!=count&&count>1&&index<count){
   str += "<td style='width:40px;font-family: 微软雅黑;font-size: 14px;white-space: nowrap;'>  <a href='#' onclick='submit(" + count+ ");'>尾页</a>  </td>" ;
  } 
   str+="</tr>";
}
//分页区域填写
$('.page').html(str);
<table class="page">
<tr><td>此处分页只需要传递给我当前页码和总页数即可</td></tr>
</table>
//根据页码查询,
function submit(pageIndex) {
 //var sortInfo = $.getUrlParam('sortInfo');//判断是哪一个页面的查询
 var url = "<?php echo current_url();?>?page="+pageIndex+"&field=<?php echo$field;?>&value=<?php echo $field_value;?>";
 window.location.href=url;
}

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
JS event使用方法详解
Apr 28 Javascript
JavaScript 字符串连接性能优化
Dec 20 Javascript
一个原生的用户等级的进度条
Jul 03 Javascript
js里取容器大小、定位、距离等属性搜集整理
Aug 19 Javascript
推荐4个原生javascript常用的函数
Jan 12 Javascript
javascript 兼容各个浏览器的事件
Feb 04 Javascript
jQuery 选择符详细介绍及整理
Dec 02 Javascript
关于vue.js发布后路径引用的问题解决
Aug 15 Javascript
了解JavaScript中let语句
May 30 Javascript
Vue按时间段查询数据组件使用详解
Aug 21 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
Sep 04 Javascript
详解Vue的异步更新实现原理
Dec 22 Vue.js
javascript实现网页字符定位的方法
Jul 14 #Javascript
JavaScript取得WEB安全颜色列表的方法
Jul 14 #Javascript
jquery获得当前html页面源码的方法
Jul 14 #Javascript
javascript实现动态表头及表列的展现方法
Jul 14 #Javascript
浅谈JSON.parse()和JSON.stringify()
Jul 14 #Javascript
常用jQuery代码分享
Jul 14 #Javascript
jQuery插件datalist实现很好看的input下拉列表
Jul 14 #Javascript
You might like
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
PHP 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
PHP 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
thinkPHP下ueditor的使用方法详解
2015/12/26 PHP
Yii实现简单分页的方法
2016/04/29 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
php源码的使用方法讲解
2019/09/26 PHP
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
使用原生js封装webapp滑动效果(惯性滑动、滑动回弹)
2014/05/06 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
JS使用正则表达式除去字符串中重复字符的方法
2015/11/05 Javascript
JS实现的自定义网页拖动类
2015/11/06 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
谈一谈bootstrap响应式布局
2016/05/23 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
2016/09/23 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
ES6新特性八:async函数用法实例详解
2017/04/21 Javascript
angularJS模态框$modal实例代码
2017/05/27 Javascript
AngularJS 限定$scope的范围实例详解
2017/06/23 Javascript
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
2018/11/28 Javascript
详解Vue底部导航栏组件
2019/05/02 Javascript
[02:04]2018DOTA2亚洲邀请赛Secret赛前采访
2018/04/03 DOTA
python实现的udp协议Server和Client代码实例
2014/06/04 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
自我鉴定怎么写
2013/12/05 职场文书
企业承诺书格式
2014/05/21 职场文书
应用外语系自荐信
2014/06/26 职场文书
班级团队活动方案
2014/08/14 职场文书
2014年科普工作总结
2014/12/06 职场文书
祝寿主持词
2015/07/02 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP