分页

2019-01-21 15:58:51 浏览数 (1)

代码语言:javascript复制
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js图片预览功能</title>
<script src="jquery-2.1.1.js" ></script>
</head>
<style type="text/css">
body,html{
margin: 0;
padding: 0;
}
body{
width: 80%;
margin-left: 5%;
}
ul{
list-style: none;
padding: 0;
margin: 0;
}
a{
text-decoration: none;
color: #000;
}
#inner ul li{
float:left;
}
#inner ul li {
width: 35px;
height: 35px;
line-height: 35px;
background: #fff;
margin-right: 2px;
text-align: center;
cursor: pointer;
border:1px solid #f9f9f9;
}
#inner ul .not{
cursor: default;
}
#inner ul li a{
width: 100%;
height: 100%;
display: inline-block;
text-align: center;
}
#inner ul .pre,#inner ul .next{
width: 70px;
}
#inner ul li:hover{
border:1px solid #FF4400;
color:#FF4400;
}
#inner ul .not:hover{
border:1px solid #f9f9f9;
color:#000;
}
#inner ul .hide{
    display: none;
}
#inner ul .current:hover{
border:1px solid #f9f9f9;
color:#fff;
}
#inner ul .current{
background: #FF4400;
cursor: default;
color:#fff;
}
#inner ul .noNext{
cursor:default;
}
#inner ul .noNext:hover{
border:1px solid #f9f9f9;
color:#000;
}
#inner ul .noNext a{
cursor:default;
}
</style>
<body>
<!--头部-->
<div style="margin-left:100px;margin-top:100px;" id="text"></div>
</body>
</html>
<script type="text/javascript">
var fenye ={
    //按钮响应时的下一个页面
    Current:1,
    //li数
    LisLen:0,
    //页数
    acount:0,
    init:function(amount,data,id,num,fn){//分别为总数 每页个数 插入到某处的ID 显示第几页 按钮响应函数
    num = Number(num);
    this.fn = fn;
    //创建DOM
    this.acount = parseInt((amount�ta)==0?(amount/data):(amount/data 1));
    this.LisLen = (this.acount > 9) ? 9 :this.acount ;
    this.lastPage = (num > this.acount) ? this.acount :((num < 1 )?1:num);
    var $div = $("<div id='inner'></div>");
    var $ul = $("<ul class='items'></ul>");
    $div.append($ul);
    var $pre = "<li class='item pre'><a href='#'><span><<上一页</span></a></li>";
    var $next = "<li class='item next'><a href='#'><span>下一页>></span></a></li>";
    var $text="";
    for(var i =0;i<this.LisLen;i  ){
        $text  = "<li class='item page'><a href='#'><span></span></a></li>" ;
    }
    $ul.append($pre).append($text).append($next);
    $id = $("#" id);
    $id.append($div);
    this.pageLis = $div.find(".items .page");
    this.change(this.lastPage);
    this.control();
},
    eventDefault:function(event){
       event.preventDefault();
       return false;
    },
    //判断是否为首尾页 从而禁止前一页和下一页的点击事件
    isLast:function(){
        var $current = $(".current a span").html();
        //最后一页
        if($current == this.acount)
        {
            $(".items .next").addClass('noNext');
            $(".items .next").on('click', 'a', this.eventDefault);
        }else{
            $(".items .next").removeClass('noNext');
            $(".items .next").off('click', 'a', this.eventDefault);
        }
        //第一页
        if($current == 1)
        {
            $(".items .pre").addClass('noNext');
            $(".items .pre").on('click', 'a', this.eventDefault);
        }else{
            $(".items .pre").removeClass('noNext');
            $(".items .pre").off('click', 'a', this.eventDefault);
        }
    },
    //
    change:function(pageNum){
        pageNum = Number(pageNum);
        //渲染到第几个li
        var index = 0;
        //去除样式
        $('#inner .items .current').removeClass('current');
        $('#inner .items .not').removeClass('not');
        $('#inner .items .hide').removeClass('hide');
        //若小于四 则按顺序创建页数1,2,3等
        if(pageNum<=4){
            //console.log(this.pageLis.eq(this.Current))
            for(var i=0;i<pageNum;i  ){
            if(i 1==pageNum){
                this.pageLis.eq(i).addClass('current');
            }
            this.pageLis.eq(i).find("a span").html(i 1);
            index = i 1;
        }
        //否则 先创建1,2,再创建... 再创建当前页数
        }else{
            for(var i=0;i<2;i  ){
                this.pageLis.eq(i).find("a span").html(i 1);
            }
            this.pageLis.eq(2).addClass('not').find("a span").html("...");
            this.pageLis.eq(3).addClass('current').find("a span").html(pageNum);
            index = 4;
        }

        //若 2大于总页数 则按顺序显示至总页数
        if(pageNum 2>=this.acount){
            for(var i=pageNum,j=0;i<this.acount;i  ){
                this.pageLis.eq(index  ).find("a span").html(pageNum j 1);
                j  ;
            };
        }else{
        //否则 先创建后面两页 再创建...
            for(var i=0;i<2;i  ){
                this.pageLis.eq(index  ).find("a span").html(pageNum i 1);
            }
            if(pageNum 3!==this.acount)
                this.pageLis.eq(index  ).addClass('not').find("a span").html("...");
            //再根据页数创建最后两页或一页
            if(this.acount-pageNum>4){
                this.pageLis.eq(index  ).find("a span").html(this.acount-1);
                this.pageLis.eq(index  ).find("a span").html(this.acount);
        }else{
                this.pageLis.eq(index  ).find("a span").html(this.acount);
        }
        }
        for(var length =this.pageLis.length;index<length;index  ){
               this.pageLis.eq(index).addClass('hide');
        }
        this.isLast();
    },
    //响应按钮点击事件
    control:function(){
        var that = this;
        $("body").on('click', '#inner .item a', function(event) {
            event.preventDefault();
            that.Current = 1;
            that.lastPage = Number($('#inner .items .current').find('a span').html());
            if($(this).parent().hasClass('next')){
                that.Current = that.lastPage 1;
            }
            else if($(this).parent().hasClass('pre')){
                that.Current = that.lastPage-1;
            }
            else
            that.Current = $(this).find('span').eq(0).html();
            that.fn(that.Current);
            that.change(that.Current);
        });
    }
}
//测试用例
fenye.init(2,2,"text",9,abc);

function abc(x){
console.log(x)
}
;
</script>

0 人点赞