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

/**
 * 取得页码数组
 *
 * @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"))
// 测试代码 结束

 

 

 

你可能感兴趣的:(数组)