javascript分页代码实例分享(js分页)


Posted in Javascript onDecember 13, 2013

调用:

var pageChange = function (index) {
            var html = pager("divid", index, 5, 1000, pageChange, { showGoTo: false, showFirst: false });
        }

实现:

pager = function (divPager, pageIndex, pageSize, totalCount, pageChange, opt) {     var theOpt = {
         barSize: 5, //分页条显示的页码数   
         barTemplate: "{bar}  共{totalPage}页{totalCount}条 {goto}", //显示模板
         autoHide: true, //是否自动隐藏
         showFirst: true, //在totalPage>barSize时是自动否显示第一页链接
         showLast: true, //在totalPage>barSize时是自动否显示最后一页链接
         showGoTo: true, //是否显示GoTo
         autoHideGoTo: true //如果太少是否自动隐藏GoTo
     };
     if (opt) {
         if (opt.barSize)
             theOpt.barSize = opt.barSize;
         if (opt.barTemplate)
             theOpt.barTemplate = opt.barTemplate;
         if (opt.autoHide == false)
             theOpt.autoHide = false;
         if (opt.showFirst == false)
             theOpt.showFirst = false;
         if (opt.showLast = false)
             theOpt.showLast = false;
         if (opt.showGoTo == false)
             theOpt.showGoTo = false;
         if (opt.autoHideGoTo == false)
             theOpt.autoHideGoTo = false;
     }
     var handles = window.myPagerChanges = (function (x) { return x; } (window.myPagerChanges || {}));
     if (!myPagerChanges[divPager]) myPagerChanges[divPager] = pageChange;
     var startPage = 0;  //分页条起始页
     var endPage = 0;    //分页条终止页
     var showFirst = true;
     var showLast = true;
 
     if (isNaN(pageIndex)) {
         pageIndex = 1;
     }
     pageIndex = parseInt(pageIndex);
     if (pageIndex <= 0)
         pageIndex = 1;
     if (pageIndex * pageSize > totalCount) {
         pageIndex = Math.ceil(totalCount / pageSize);
     }
     if (totalCount == 0) { //如果没数据
         document.getElementById(divPager).innerHTML = "";
         return "";
     }
     var totalPage = Math.ceil(totalCount / pageSize);
     if (theOpt.autoHide && totalCount <= pageSize) {   //自动隐藏
         document.getElementById(divPager).innerHTML = "";
         return "";
     }
     if (totalPage <= theOpt.barSize) {
         startPage = 1;
         endPage = this.totalPage;
         theOpt.showLast = theOpt.showFirst = false;
     }
     else {
         if (pageIndex <= Math.ceil(theOpt.barSize / 2)) { //最前几页时
             startPage = 1;
             endPage = theOpt.barSize;
             theOpt.showFirst = false;
         }
         else if (pageIndex > (totalPage - theOpt.barSize / 2)) { //最后几页时
             startPage = totalPage - theOpt.barSize + 1;
             endPage = totalPage;
             theOpt.showLast = false;
         }
         else {                                          //中间的页时
             startPage = pageIndex - Math.ceil(theOpt.barSize / 2) + 1;
             endPage = pageIndex + Math.floor(theOpt.barSize / 2);
         }
         if (totalPage <= (theOpt.barSize * 1.5)) {
             theOpt.showLast = theOpt.showFirst = false;
         }
     }
     function _getLink(index, txt) {
         if (!txt) txt = index;
         return "<a href='javascript:;' style='margin: 2px 5px;border: 1px solid #6d8cad;color: #0269BA;padding: 2px 5px;text-decoration: none;' onclick='myPagerChanges[\"" + divPager + "\"](" + index + ")'>" + txt + "</a>";
     }
     var barHtml = "";  //分页条
     barHtml += pageIndex == 1 ? "" : _getLink(pageIndex - 1, "上一页");
     if (theOpt.showFirst) {
         barHtml += _getLink(1) + "<span>...</span>";
     }
     for (var index = startPage; index <= endPage; index++) {
         if (index == pageIndex) {
             barHtml += "<span style='color:red;font-weight:blod; '>" + index + "</span>";
         }
         else {
             barHtml += _getLink(index);
         }
     }
     if (theOpt.showLast) {
         barHtml += "<span>...</span>" + _getLink(totalPage);
     }
     barHtml += pageIndex == totalPage ? "" : _getLink(pageIndex + 1, "下一页");
     var gotoHtml = "";  //goto框及按钮
     if (theOpt.showGoTo && theOpt.barTemplate.indexOf("{goto}") > 0) {
         if ((theOpt.autoHideGoTo && totalPage > 15) || theOpt.autoHideGoTo == false) {
             var txtid = divPager + "_goIndex";
             var indexVal = "document.getElementById(\"" + txtid + "\").value";
             gotoHtml += "<input type='text' onkeypress='if(event.keyCode==13){myPagerChanges[\"" + divPager + "\"](" + indexVal + ")}' id='" + txtid + "' value=" + pageIndex + " style='width:30px'>";
             gotoHtml += " <input type='button' class='page_bg' value='go' onclick='myPagerChanges[\"" + divPager + "\"](" + indexVal + ")'>";
         }
     }
     //替换模板
     var pagerHtml = theOpt.barTemplate.replace("{bar}", barHtml)
                               .replace("{totalCount}", totalCount)
                               .replace("{pageIndex}", pageIndex)
                               .replace("{totalPage}", totalPage)
                               .replace("{goto}", gotoHtml);
     document.getElementById(divPager).innerHTML = pagerHtml;
     return pagerHtml;
 };
Javascript 相关文章推荐
一段实时更新的时间代码
Jul 07 Javascript
PNG背景在不同浏览器下的应用
Jun 22 Javascript
Javascript模块化编程(一)模块的写法最佳实践
Jan 17 Javascript
jQuery修改CSS伪元素属性的方法
Jul 30 Javascript
JavaScript中获取高度和宽度函数总结
Oct 08 Javascript
JavaScript中使用Object.create()创建对象介绍
Dec 30 Javascript
js实现方块上下左右移动效果
Aug 17 Javascript
JavaScript基于面向对象实现的猜拳游戏
Jan 03 Javascript
Vue中v-show添加表达式的问题(判断是否显示)
Mar 26 Javascript
vue.js自定义组件directives的实例代码
Nov 09 Javascript
Vue注册组件命名时不能用大写的原因浅析
Apr 25 Javascript
vue实现固定位置显示功能
May 30 Javascript
jquery 操作iframe的几种方法总结
Dec 13 #Javascript
异步动态加载JS并运行(示例代码)
Dec 13 #Javascript
JQuery中$.ajax()方法参数详解及应用
Dec 12 #Javascript
js setTimeout()函数介绍及应用以倒计时为例
Dec 12 #Javascript
jquery如何获取复选框的值
Dec 12 #Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
Dec 12 #Javascript
jQuery的each终止或跳过示例代码
Dec 12 #Javascript
You might like
php ftp文件上传函数(基础版)
2010/06/03 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
2009/02/17 Javascript
学习ExtJS Window常用方法
2009/10/07 Javascript
jquery下将选择的checkbox的id组成字符串的方法
2010/11/28 Javascript
js 操作select和option常用代码整理
2012/12/13 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
jQuery实现用户注册的表单验证示例
2013/08/28 Javascript
js文本框输入点回车触发确定兼容IE、FF等
2013/11/19 Javascript
JS 数字转换研究总结
2013/12/26 Javascript
javascript获取web应用根目录的方法
2014/02/12 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
完美的js div拖拽实例代码
2016/09/24 Javascript
几种响应式文字详解
2017/05/19 Javascript
vue中如何让子组件修改父组件数据
2018/06/14 Javascript
js中时间格式化的几种方法
2018/07/22 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
vue循环中点击选中再点击取消(单选)的实现
2020/09/10 Javascript
Python数据分析库pandas基本操作方法
2018/04/08 Python
解决Python下imread,imwrite不支持中文的问题
2018/12/05 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
Android笔试题总结
2014/11/29 面试题
改进作风怎么办发言材料
2014/08/17 职场文书
高中升旗仪式演讲稿
2014/09/09 职场文书
部队反四风对照检查材料
2014/09/26 职场文书
六年级小学生评语
2014/12/26 职场文书
环卫工作个人总结
2015/03/04 职场文书
保险公司反洗钱宣传活动总结
2015/05/08 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL