分页之页码数量显示
javaScript页码简单算法实现, 在此留作笔记, 供以后参考
- /**
- * 页码计算, 仅适用于显示奇数数量的页码
- * @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
- };
- }
========用作参考=========