页码数量显示--简单算法

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
	};
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值