• 分页展示


    一、实现效果如下:

    二、要求:

      ① 当前页码为1时,上一页、1都不能点击

      ② 当前页码为最后一页时,下一页、最后一页均不能点击

      ③ 默认页码为7页,<7时,该多少页展示多少页

      ④ >7时,只展示7页

      ⑤ 对当前页的判断,展示页码:

        a. 是否是1、2、3页,如果是正常展示,因为Math.ceil(7/2) = 4,向上取整,中间页数是4,两侧分别是3

        b. 是否是最后3页, allNum - nowNum == 0 || allNum - nowNum == 1 || allNum - nowNum == 2

        c. 如果不是前3页或后3页,那么页码该如何展示?

          nowNum - 4 + i,即当前应该展示的页码

    三、代码

    // 分页
    
    function page(opt) {
        if(!opt.id) {
            return false;
        }
    
        // 获取参数
        var $pageNum = $(opt.id);
        var nowNum = opt.nowNum || 1;
        var allNum = opt.allNum || 7;
        var callBack = opt.callBack || function() {};
        var $numA = '';
    
        // 上一页
        if(nowNum >= 1) {
            if(nowNum == 1) {
                var $numA = $('<span class="prev-page">上一页</span>');
            }else {
                var $numA = $('<a class="prev-page">上一页</a>');
                $numA.attr('href','#'+(nowNum-1));
            }
            $pageNum.append($numA);
        }
    
        // 总页数<=7时
        if(allNum <= 7) {
            for( var i=1; i<=allNum; i++ ) {
                if(nowNum == i) {
                    $numA = $('<span>'+i+'</span>');
                }else {
                    $numA = $('<a href="'+i+'">'+i+'</a>');
                }
                $pageNum.append($numA);
            }
        }else {
            // 总页数>7时
            // 首先至少展示7条
            for( var i=1; i<=7; i++ ) {
                // nowNum为1、2、3时
                if(nowNum == 1 || nowNum == 2 || nowNum == 3) {
                    if(nowNum == i) {
                        $numA = $('<span>'+i+'</span>');
                    }else {
                        $numA = $('<a href="#'+i+'">'+i+'</a>');
                    }
                }else if((allNum-nowNum)==0 || (allNum-nowNum)==1 || (allNum-nowNum)==2) {
                    // nowNum为最后三个时
    
                    if(allNum - nowNum == 0 && i==7) {
                        $numA = $('<span>'+(allNum - 7 + i)+'</span>');
                    }else if((allNum-nowNum) == 1 && i==6) {
                        $numA = $('<span>'+(allNum - 7 + i)+'</span>');
                    }else if((allNum-nowNum) == 2 && i==5) {
                        $numA = $('<span>'+(allNum - 7 + i)+'</span>');
                    }else {
                        $numA = $('<a href="#'+(allNum - 7 + i)+'">'+(allNum - 7 + i)+'</a>');
                    }
                }else {
                    if(i == 4) {
                        $numA = $('<span>'+(nowNum - 4 + i)+'</span>');
                    }else {
                        $numA = $('<a href="#'+(nowNum - 4 + i)+'">'+(nowNum - 4 + i)+'</a>');
                    }
                }
    
                $pageNum.append($numA);
            }
        }
    
        // 下一页
        if(nowNum >= 1) {
            if(nowNum == totalPage) {
                $numA = $('<span class="next-page">下一页</span>');
            }else {
                $numA = $('<a class="next-page" href="#'+(nowNum+1)+'">下一页</a>');
            }
            $pageNum.append($numA);
        }
    
        callBack(nowNum,allNum);
    }
    

      

    // 点击页码
    $("#page-num").on('click','a',function () {
            var nowNum = parseInt($(this).attr('href').substring(1));
            $("#page-num").html('');
    
            page({
                id:'#page-num',
                nowNum:nowNum,
                allNum:totalPage
            });
            return false;
    });
    

      

    /* 分页 ----> 页面初始化时展示页码
        * id: 页码盒子的id
        * nowNum: 现点击页码
        * allNum: 总页码
        * callback: 回调函数
    * */
    
    page({
            id:'#page-num',
            nowNum:1,
            allNum:totalPage,
            callBack:function(now, all) {
                // 默认获取的是第一页的信息
            }
    });
    

      

  • 相关阅读:
    【6.29】数组和方法
    【6.28】判断和循环
    【6.27】两个数交换的4种方法
    NodeJS学习笔记
    准备使用马克飞象写博客
    前端基础
    学习笔记
    数据结构 — Java链表
    Java 日期类型与字符串的相互转换
    Scala(一)基础
  • 原文地址:https://www.cnblogs.com/carriezhao/p/8109719.html
Copyright © 2020-2023  润新知