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 }; }