欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

给分页使用的函数:生成翻页的页码数组

程序员文章站 2022-05-24 19:02:46
...
/**
 * 取得页码数组
 *
 * @param showPageMaxCount 允许显示的页码最大数量
 * @param pageNow 当前页码
 * @param pageCount 总页数
 *
 * @return 页码数组(整数数组)
 */
function getPageNumArr(showPageMaxCount, pageNow, pageCount){
	var pageNumArr = [];
	var pageNumBegin, pageNumEnd;
	if(pageCount<=showPageMaxCount){
		// 总页数在10以内
		pageNumBegin = 1;
		pageNumEnd = pageCount;
	}else{
		// 总页数在10以外
		if(pageNow <= Math.floor(showPageMaxCount/2)){
			// 当前页码在头几页以内
			pageNumBegin = 1;
			pageNumEnd = showPageMaxCount;
		}else if((pageCount-pageNow) <= Math.floor(showPageMaxCount/2)){
			// 当前页码在最后几页以内
			pageNumBegin = pageCount-showPageMaxCount;
			pageNumEnd = pageCount;
			(pageNumEnd-pageNumBegin)>=showPageMaxCount && (pageNumBegin++)
		}else{
			// 当前页码前不着村后不着甸
			pageNumBegin = Math.ceil(pageNow-showPageMaxCount/2);
			pageNumEnd = Math.floor(pageNow+showPageMaxCount/2);
			(pageNumEnd-pageNumBegin)>=showPageMaxCount && (pageNumBegin++)
		}
	}
	for(var i=pageNumBegin;i<=pageNumEnd;i++){
		pageNumArr.push(i);
	}
	return pageNumArr;
}

// 测试代码 开始

	// 测试偶数
	var strArr = [];
	for(var i=1;i<=30;i++){
		var arr = getPageNumArr(6, i, 30);
		strArr.push("第"+i+"页:\t"+arr.join("\t"));
	}
	alert("测试偶数:\n\n"+strArr.join("\n"))

	// 测试奇数
	var strArr = [];
	for(var i=1;i<=30;i++){
		var arr = getPageNumArr(5, i, 30);
		strArr.push("第"+i+"页:\t"+arr.join("\t"));
	}
	alert("测试奇数:\n\n"+strArr.join("\n"))
// 测试代码 结束