JavaScript分页栏链接转变算法

window.onload = function(){
    var para = {pagecount: 9, curpage: 5};
    var pageBar = document.getElementById("pageBar");
    pageBar.innerHTML = createPageBar(para);
};

function getPage(id){
    id = parseInt(id);
    var pageBar = document.getElementById("pageBar");
    pageBar.innerHTML = createPageBar({pagecount: 9, curpage: id});
}

function createPageBar(para){
    var i;
    var pageBarStr = '<div>';
    if(para.pagecount < 8){
        for(i = 1; i <= para.pagecount; i++){
            pageBarStr += '<a href="javascript:;" onclick="getPage(this.innerHTML)">'
            + i
            +'</a>';
        }
    }else if(para.pagecount == 8){
        if(para.curpage < 5){
            for(i = 1; i < 7; i++){
                pageBarStr += '<a href="javascript:;" onclick="getPage(this.innerHTML)">'
                    + i
                    +'</a>';
            }
            pageBarStr += '...<a href="javascript:;" onclick="getPage(this.innerHTML)">8</a>';
        }else{
            pageBarStr += '<a href="javascript:;" onclick="getPage(this.innerHTML)">1</a>...';
            for(i = 3; i <= 8; i++){
                pageBarStr += '<a href="javascript:;" onclick="getPage(this.innerHTML)">'
                    + i
                    +'</a>';
            }
        }
    }else{ //pagecount > 8
        if(para.curpage < 5){
            for(i = 1; i < 7; i++){
                pageBarStr += '<a href="javascript:;" onclick="getPage(this.innerHTML)">'
                    + i
                    +'</a>';
            }
            pageBarStr += '...<a href="javascript:;" onclick="getPage(this.innerHTML)">'
                + para.pagecount
                +'</a>';
        }else if(para.curpage > para.pagecount - 4){
            pageBarStr += '<a href="javascript:;" onclick="getPage(this.innerHTML)">1</a>...';
            for(i = para.pagecount - 5; i <= para.pagecount; i++){
                pageBarStr += '<a href="javascript:;" onclick="getPage(this.innerHTML)">'
                + i
                +'</a>';
            }
        }else{
            pageBarStr += '<a href="javascript:;" onclick="getPage(this.innerHTML)">1</a>...';
            for(i = para.curpage - 2; i < para.curpage + 3; i++){
                pageBarStr += '<a href="javascript:;" onclick="getPage(this.innerHTML)">'
                + i
                +'</a>';
            }
            pageBarStr += '...<a href="javascript:;" onclick="getPage(this.innerHTML)">'
            + para.pagecount
            +'</a>';
        }
    }
    
    pageBarStr += '</div>';
    return pageBarStr;
};

  

原文地址:https://www.cnblogs.com/realwall/p/2178861.html