分页控件在ajax请求中非常常见,页数较多时不可能一次将所有的页数显示出来,如共有20页数据,则分页控件一次固定只显示6页的页标,这需要每次点击页数后重新刷新这个页标数据,并且当前页的页标始终在中间,以下是自己写的方法(固定显示6个页标,当前页在第三个)。
注意:页码是从1而不是从0开始的。
function mathPages(index, totalpage) { //页码和一共有多少页
var indexs = [];
for(var i = 1; i <= totalpage; i++) {
indexs.push(i); //先根据总页数创建数组,将全部页标添加到数组中
}
if(totalpage<=6){
return indexs; //总页数<=6页时,直接输出即可
}
if(index<=2){
indexs = indexs.slice(0,6); //当前页<=2时,当前页的页标就不能显示在第三位了,直接截取0~6输出
return indexs;
}else{
var indexs2 = indexs.slice(index-3,index+3);
//如果当前页标>2,则从当前页标-3开始截取总页标数组,截取6个
if(indexs2.length>=6){
return indexs2; //如果当前页不是倒数后3页,则截取没问题,直接输出
}else{
indexs2 = indexs.slice(-6);
return indexs2; //如果当前页是倒数后3页,就截取不到6个页标,那么直接最后截取6个页标即可
}
}
}
这个函数传入当前的页码和总页数,就会输出一个含有页标的数据,循环创建按钮即可。每次点击页标后执行此函数,传入新的当前页标,重新输出页标数组。