自写前端分页代码关键部分记录,以备不时之需

为了写出一个通用的前端的分页页码的制作的模板,不在以后再麻烦,所以就自己写了一个粗糙的算法模板,这个模板可以自由的设置页码总数,只要你知道分页总数并设置了页码显示数。

var num = 3; //显示的页码数 可随意设置
var page_str = "";	//用来拼接页码代码
var begin, end;		//计算页码起始页,做遍历生成用
//计算起始
//因为用的ajax获取的,也就没再改,使用时灵活替换到自己的同义变量即可
if (data.last_page/*总页数*/ <= num) {
    
     //如果分页总数没有超过页码显示数	
    begin = 1;
    end = data.last_page;
} else {
    
    				//如果分页总数超过页码显示数
    if (data.current_page/*当前页*/ <= num) {
    
    	
    	//边界限定一
    	//这里是为了处理当前页开始时的特殊情况
        begin = 1;
        end = num;
    } else if (data.current_page >= data.last_page - num + 1) {
    
    
    	//边界限定二
    	//这里是为了处理当前页结束时的特殊情况
        begin = data.last_page - num + 1;
        end = data.last_page;
    } else {
    
    
        begin = data.current_page - Math.floor(num / 2);
        end = begin + num - 1;
    }
}
//拼接
//这里的jump函数,使用时一定要处理溢出,
//我写的jump函数在内部做了处理,这里就方便了许多
//拼接跳转首页
page_str += '<a class="prev" href="javascript:jump(' + 1 + ');">Start</a>';
//拼接跳转上一页
page_str += '<a class="prev" href="javascript:jump(' + (data.current_page - 1) + ');">&lt;&lt;</a>';
//循环拼接主体 设定当前页高亮
for (var i = begin; i <= end; i++) {
    
    
    if (data.current_page == i) page_str += '<span class="current">' + i + '</span>';
    else page_str += '<a class="num" href="javascript:jump(' + i + ');">' + i + '</a>'
}
//拼接跳转下一页
page_str += '<a class="next" href="javascript:jump(' + (data.current_page + 1) + ');">&gt;&gt;</a>';
//拼接跳转尾页
page_str += '<a class="prev" href="javascript:jump(' + data.last_page + ');">End</a>';
//设置
$('div.page>div').html(page_str);

这里的模板仅仅是一个主体框架,请勿直接复制,需要灵活地处理一下才可以使用
我这里有一个演示:
这里数据比较少,但可以测试无论对于偶数显示或者奇数显示都可以良好的进行拼接,暂时满足了我的使用需要。
显示页码数3
在这里插入图片描述
显示页码数2
在这里插入图片描述
如果设置页码数为3,但我的数据只有一页,也会灵活处理,看:
在这里插入图片描述
满足了,以后写分页的时候就不用重新思考了,粗糙的实现一劳永逸,哈哈!点个赞再走吧!

猜你喜欢

转载自blog.csdn.net/L333333333/article/details/103103652