纯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 相关文章推荐
转一个日期输入控件,支持FF
Apr 27 Javascript
浅谈setTimeout 与 setInterval
Jun 23 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
Jul 01 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
Jan 19 Javascript
jQuery动态添加与删除tr行实例代码
Oct 18 Javascript
js实现用户输入的小写字母自动转大写字母的方法
Jan 21 Javascript
Three.js基础学习之场景对象
Sep 27 Javascript
Vue实现类似Spring官网图片滑动效果方法
Mar 01 Javascript
p5.js绘制创意自画像
Nov 04 Javascript
vuex实现数据状态持久化
Nov 11 Javascript
JS数组方法reduce的用法实例分析
Mar 03 Javascript
Element Collapse 折叠面板的使用方法
Jul 26 Javascript
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
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
具有时效性的php加密解密函数代码
2013/06/19 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
jQuery+php简单实现全选删除的方法
2016/11/28 PHP
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
基于Vue2的移动端开发环境搭建详解
2016/11/03 Javascript
vue使用 better-scroll的参数和方法详解
2018/01/25 Javascript
关于ES6箭头函数中的this问题
2018/02/27 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
vue实现单一筛选、删除筛选条件
2020/10/26 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
Python使用random和tertools模块解一些经典概率问题
2015/01/28 Python
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
python PIL/cv2/base64相互转换实例
2020/01/09 Python
PyTorch: Softmax多分类实战操作
2020/07/07 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
Html5 FileReader实现即时上传图片功能实例代码
2014/09/01 HTML / CSS
STAY JAPAN台湾:预订日本民宿
2018/07/22 全球购物
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
新西兰杂志订阅:isubscribe
2019/08/26 全球购物
优秀毕业生找工作自荐信
2014/06/23 职场文书
员工生日活动方案
2014/08/24 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
优秀教师个人材料
2014/12/15 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python