jquery案例之分页

1.固定分页

固定1到10,11到20…(类似百度底部的分页)
点击上一页和下一页时:
以20页为例
索引0到6或者16到20时,每点击上一页或下一页的按钮,固定每次显示的值不变,只变当前索引的样式
其余:在固定索引5即中间位置处的样式不变,但每次显示的10个值都会动态变化

		$(".down").click(function () {
            nowpage++;
            if(nowpage>totalpage){
                nowpage=totalpage;
                return;
            }
            if(nowpage<7||nowpage+4>totalpage){
                $(".page").eq(nowpage%10-1).addClass("ck").prev().toggleClass("ck");
            }
            else{
                $(".page").each(function (index) {
                    $(this).html(index+nowpage-5);
                })
            }
            console.log(nowpage);
        });
        $(".up").click(function () {
            nowpage--;
            if(nowpage<1){
                nowpage=1;
                return;
            }
            if(nowpage<6||nowpage+4>=totalpage){
                $(".page").eq(nowpage%10-1).addClass("ck").next().toggleClass("ck");
            }
            else{
                $(".page").each(function (index) {
                    $(this).html(index+nowpage-5);
                })
            }
            console.log(nowpage);
        });

点击页码事件
同样分为上述三种情况
0到6 时: 显示1到10
16到20时:显示11到20
其余:数值动态变化,但给固定中间位置加样式

$(".page").click(function () {
            nowpage=parseInt($(this).html());
            console.log(nowpage);
            if(nowpage>=6&&nowpage<=totalpage-4){
                $(".page").map(function (index,ele) {
                    $(ele).html(nowpage-5+index)
                });
                $(".page").eq(5).addClass("ck").siblings().removeClass("ck");
            }
            else if(nowpage+4>totalpage){
                $(".page").map(function (index,ele) {
                    $(ele).html(totalpage-9+index);
                });
                $(".page").eq(nowpage%10-1).addClass("ck").siblings().removeClass("ck");
            }
            else {
                //nowpage<6
                $(".page").map(function (index,ele) {
                    $(ele).html(index+1)
                });
                $(".page").eq(nowpage%10-1).addClass("ck").siblings().removeClass("ck");
            }
        })

2.动态缩页

这种分页不能像上面一样,直接固定创建dom。随着当前页数的变化,需要动态创建dom
分为前缩、前后缩、后缩

		$(".pages").html(create(nowpage,totalpage));
        function create(now,all){
            var str="";
            str+="<li class='up'>上一页</li>";
            for(var i=1;i<=all;i++){
           
                if(i==2&&now-3>i){
                    i=now-3;
                    str += "<li class='pageli'>...</li>";
                }
                else if(i==now+3&&now+3<all){
                    i=all-1;
                    str += "<li class='pageli'>...</li>";
                }
                else{
                    if(i==now) {
                        str += "<li class='ck pageli'>" + i + "</li>";
                    }

                    else{
                        str+="<li class='pageli'>"+i+"</li>";
                    }
                }
            }
            str+="<li class='down'>下一页</li>";
            return str;
        }

        //下一页 上一页
        updown();
        function updown() {
            $(".up").click(function () {
                nowpage--;
                if(nowpage<1){
                    nowpage=1;
                }
                $(".pages").html(create(nowpage,totalpage));
                updown();
            });
            $(".down").click(function () {
                nowpage++;
                if(nowpage>totalpage){
                    nowpage=totalpage;
                }
                $(".pages").html(create(nowpage,totalpage));
                updown();
            });
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值