js模拟百度分页

 
/**
 *
 * @param {Object} page 当前页
 * @param {Object} size 每页记录数
 * @param {Object} total 记录数
 * @param {Object} maxNumButton 数字按钮数
 * return 如:obj = {total:12,show:[1,2,3,4,5],prepage:1,current:2,next:3}
 *
 */
function pageInfo(page,size,total,maxNumButton){
    //page 当前页 items每页最多显示多少条数据服务端返回的数据
    if(size == 0 || total <= 0 || page < 1){
        return;
    }
    var allPage = Math.floor(total / size) ;//总页数
    
    var mo = total % size;
    if(mo){
        allPage++;
    }
    var pageHelper = {}
    pageHelper.total = total;
    pageHelper.lastPage = allPage;//最后页
    if(page >= allPage){
        page = allPage;
    }
    var show = [];
    
    function showPage(current,last,showMax){
        pageHelper.current = current;
        //上一页
        if(current > 1 ){
            pageHelper.prepage = current - 1;
        }
        //下一页
        if(current != last){
            pageHelper.next = current + 1;
        }
        //数字页码
        if(last <= showMax){
            for(var i = 1;i<=last;i++){
                show.push(i);
            }
        }
        else{
            var avgNum = Math.floor(showMax / 2) + 1;//奇数中间值,偶数
            //要显示的页码数  最大
            if(current <= avgNum){
                
                for(var i = 1;i<=showMax;i++){
                    show.push(i);
                }
            }
            else{
                if(last - current >= avgNum){
                    for(var i = current - Math.floor(showMax / 2);i<=current - Math.floor(showMax / 2 )+showMax-1;i++){
                    
                        show.push(i);
                    }
                }
                else{
                    for(var i = current- (showMax- 1 - (last - current)); i <= last; i++){
                        show.push(i);
                    }
                }
            }
        }
        pageHelper.show = show;
    }
    showPage(page,allPage,maxNumButton);
    console.log(pageHelper);
    return pageHelper;
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值