分页之页码数量显示
2016-01-08 08:59
260 查看
javaScript页码简单算法实现, 在此留作笔记, 供以后参考
Js代码
/**
* 页码计算, 仅适用于显示奇数数量的页码
* @param size 页大小
* @param index 当前页码
* @param rowCount 总行数
* @param numCount 要显示的页码数量
* @returns {Object} pageTotal(总页数), minNum(最小页码), maxNum(最大页码)
*/
function pageCalc(size, index, rowCount, numCount, debug) {
// 1. 得到总页数
var pageTotal = parseInt((rowCount + size - 1) / size);
// 2. 得到要显示页码数量的一半
var offset = parseInt(numCount / 2);
/* 要计算偶数个数需重新计算 */
// if (!(numCount % 2)) {
// offset -= 1;
// }
// 3. 得到开始页码和结束页码
var minNum = index - offset;
var maxNum = index + offset;
// debug
if (debug) console.log({pageTotal:pageTotal, minNum:minNum, maxNum:maxNum});
// 修复较小的页码
// 4. 修复结束页码
if (minNum < 1) {
var tmp = 0 - minNum + 1 + maxNum;
minNum = 1;
maxNum = (tmp > pageTotal ? pageTotal : tmp);
}
// 5. 修复开始页码
if (maxNum > pageTotal) {
var tmp = maxNum - pageTotal;
maxNum = pageTotal;
minNum = minNum - tmp;
if (minNum < 1) {
minNum = 1;
}
}
return {
pageTotal : pageTotal,
minNum : minNum,
maxNum : maxNum
};
}
========用作参考=========
Js代码
/**
* 页码计算, 仅适用于显示奇数数量的页码
* @param size 页大小
* @param index 当前页码
* @param rowCount 总行数
* @param numCount 要显示的页码数量
* @returns {Object} pageTotal(总页数), minNum(最小页码), maxNum(最大页码)
*/
function pageCalc(size, index, rowCount, numCount, debug) {
// 1. 得到总页数
var pageTotal = parseInt((rowCount + size - 1) / size);
// 2. 得到要显示页码数量的一半
var offset = parseInt(numCount / 2);
/* 要计算偶数个数需重新计算 */
// if (!(numCount % 2)) {
// offset -= 1;
// }
// 3. 得到开始页码和结束页码
var minNum = index - offset;
var maxNum = index + offset;
// debug
if (debug) console.log({pageTotal:pageTotal, minNum:minNum, maxNum:maxNum});
// 修复较小的页码
// 4. 修复结束页码
if (minNum < 1) {
var tmp = 0 - minNum + 1 + maxNum;
minNum = 1;
maxNum = (tmp > pageTotal ? pageTotal : tmp);
}
// 5. 修复开始页码
if (maxNum > pageTotal) {
var tmp = maxNum - pageTotal;
maxNum = pageTotal;
minNum = minNum - tmp;
if (minNum < 1) {
minNum = 1;
}
}
return {
pageTotal : pageTotal,
minNum : minNum,
maxNum : maxNum
};
}
========用作参考=========
相关文章推荐
- Unity教程之-Unity3d在安卓android的更新(APK覆盖)
- java160105FirstRabbit
- 百度笔试(2014年10.12.14:00)
- 秒杀系统架构分析与实战
- jquery限定文本框只能输入数字(整数和小数)
- 《模式分类》第二版 第二章课后编程题
- 数据库优化相关的知识,及高并发下的数据库优化,解决数据库并发瓶颈
- cron表达式详解
- Java关键字
- linux内核cdev_init系列函数(字符设备的注册)
- 《Android源码设计模式解析与实战》读书笔记(十七)
- 终于明白了虚函数、纯虚函数和接口的实用方法和意义
- 如何交付高质量的代码
- 一步步学习javascript基础篇(7):BOM和DOM
- HTML——颜色代码
- 项目成本管理记忆口诀:
- The APR based Apache Tomcat Native library which allows optimal performance in production environmen
- 红黑树
- WIN XP 开机正常,过了进度条之后黑屏
- [INS-32052] Oracle基文件夹和Oracle主文件夹位置同样