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 相关文章推荐
Javascript 构造函数 实例分析
Nov 26 Javascript
JS重要知识点小结
Nov 06 Javascript
让复选框只能选择一项的方法
Oct 08 Javascript
Javascript 遍历页面text控件详解
Jan 06 Javascript
在JavaScript中使用NaN值的方法
Jun 05 Javascript
微信小程序 生命周期详解
Oct 12 Javascript
巧用Javascript的逻辑运算符
Dec 02 Javascript
bootstrap的工具提示实例代码
May 17 Javascript
为输入框加入数字js校验代码分享
Nov 02 Javascript
vue 路由嵌套高亮问题的解决方法
May 17 Javascript
简单说说angular.json文件的使用
Oct 29 Javascript
JS猜数字游戏实例讲解
Jun 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中strlen和mb_strlen的区别
2014/08/31 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
PHP多线程类及用法实例
2014/12/03 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
msn上的tab功能Firefox对childNodes处理的一个BUG
2008/01/21 Javascript
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
JavaScript 学习笔记之操作符
2015/01/14 Javascript
JS实现霓虹灯文字效果的方法
2015/08/06 Javascript
10个很棒的jQuery代码片段
2015/09/24 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
vue-star评星组件开发实例
2018/03/01 Javascript
vue项目中添加单元测试的方法
2018/07/21 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
vue实现随机验证码功能的实例代码
2019/04/30 Javascript
jQuery 选择器用法基础入门示例
2020/01/04 jQuery
js+canvas实现刮刮奖功能
2020/09/13 Javascript
Python验证码识别的方法
2015/07/10 Python
python中的字符串内部换行方法
2018/07/19 Python
flask中的wtforms使用方法
2018/07/21 Python
windows下python虚拟环境virtualenv安装和使用详解
2019/07/16 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
Python json解析库jsonpath原理及使用示例
2020/11/25 Python
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
企业宗旨标语
2014/06/10 职场文书
安全施工责任书
2014/08/25 职场文书
大学四年个人总结
2015/03/03 职场文书
刑事案件上诉状
2015/05/23 职场文书
初中思想品德教学反思
2016/02/24 职场文书
Python实现byte转integer
2021/06/03 Python