给分页使用的函数:生成翻页的页码数组
程序员文章站
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")) // 测试代码 结束