huangguajiahai

Bootstrap分页的确很漂亮,不过看引用的js感觉一脸懵逼,用起来不方便,所以自己写了下,需要的可以拷贝过去用:

一:效果预览

二:HTML和js 代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>分页</title>
   <link href="https://v3.bootcss.com/dist/css/bootstrap.min.css" rel="stylesheet" />
</head>
<body>
    <div class="container-fluid">
        <div class="row">
            <div class="col-md-12">
                <div class="panel panel-success">
                    <div class="panel-heading">
                        分页演示
                    </div>
                    <table class="table table-hover">
                        <thead>
                            <tr>
                                <th width="5%"></th>
                                <th width="75%">内容</th>
                                <th width="20%">操作</th>
                            </tr>
                        </thead>
                        <tbody id="js_Table"></tbody>
                    </table>
                    <div id="j_divPage" style="float:right;">
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
    var data =
        [
              { id: 1, content: \'人生若只如初见\' }
            , { id: 2, content: \'何事秋风悲画扇\' }
            , { id: 3, content: \'等闲变却故人心\' }
            , { id: 4, content: \'却道故人心易变\' }
            , { id: 5, content: \'骊山语罢清宵半\' }
            , { id: 6, content: \'泪雨霖铃终不怨\' }
            , { id: 7, content: \'何如薄幸锦衣郎\' }
            , { id: 8, content: \'比翼连枝当日愿\' }
            , { id: 9, content: \'胜日寻芳泗水滨\' }
            , { id: 10, content: \'无边光景一时新\' }
            , { id: 11, content: \'等闲识得东风面\' }
        ];
    var PageSize = 3;
    getDataList(1);
    function getDataList(PageNumber) {
        var showData = [];
        var startid = (PageNumber - 1) * PageSize;
        var endid = PageNumber * PageSize;
        $.each(data, function (i, item) {
            if (startid < item.id  && item.id <= endid) {
                showData.push(item);
            }
        })

        var $tableID = $("#js_Table");
        $tableID.empty();
        InitWebPager(data.length, PageNumber, PageSize, $("#j_divPage"), function (pageClickedNumber) {
            getDataList(pageClickedNumber);
        });
        $.each(showData, function (i, item) {
            var strhtml = [\' <tr>\',
                \'    <th scope="row">\'+item.id+\'</th>\',
                \'   <td>\'+item.content+\'</td>\',
                \'   <td><a href="javascript:;"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a></td>\',
                \'   </tr>\'].join("");
            $tableID.append(strhtml);
        });
    }

    //total:记录总数
    //pagenumber:第几页
    //pagesize:分页大少
    //$j_page:分页ID
    //callback:分页回调点击事件
    function InitWebPager(total, pagenumber, pagesize, $j_page, callback) {
        var linkshow = 7;//最多显示页
        $j_page.empty();
        if (total < pagesize) {
            $j_page.hide();
            return;
        } else {
            $j_page.show();
        }
        var strhtml = \'\';
        strhtml += \'<ul class="pagination">\';
        if (pagenumber == 1) {
            strhtml += \'<li data-index="pre" id="prepage" class="disabled"><a href="#">上一页</a></li>\';
        } else {
            strhtml += \'<li data-index="pre"  id="prepage"><a href="#">上一页</a></li>\';
        }
        for (var i = 1; i <= Math.ceil(total / pagesize); i++) {
            if (i == 1) {
                strhtml += \'<li data-index=\' + i + \' class="active"><a href="#">\' + i + \'</a></li>\';
            } else if (i > linkshow) {
                strhtml += \'<li data-index=\' + i + \' style="display:none"><a href="#">\' + i + \'</a></li>\';
            } else {
                strhtml += \'<li data-index=\' + i + \' ><a href="#">\' + i + \'</a></li>\';

            }
        }
        if (pagenumber == Math.ceil(total / pagesize)) {
            strhtml += \'<li  data-index="next"   id="nextpage" class="disabled"><a href="#">下一页</a></li>\';
        } else {
            strhtml += \'<li  data-index="next"  id="nextpage"><a href="#">下一页</a></li>\';
        }
        strhtml += "</ul>";
        $j_page.append(strhtml);
        $(".pagination li").removeClass("active");
        $j_page.find("[data-index=" + pagenumber + "]").addClass("active");
        $(".pagination li").click(function () {
            if ($(this).data("index") == \'pre\') {//上一页
                if ($(this).hasClass("disabled")) return;
                $(".pagination .active").prev().trigger("click");
            } else if ($(this).data("index") == \'next\') {//下一页
                if ($(this).hasClass("disabled")) return;
                $(".pagination .active").next().trigger("click");
            } else {//相应的页数
                if (pagenumber == $(this).data("index")) {
                    return;
                }
                pagenumber = $(this).data("index");
                $(".pagination li").removeClass("active");
                $(this).addClass("active");
                if (pagenumber == 1) {
                    $("#prepage").addClass("disabled");
                }
                else {
                    $("#prepage").removeClass("disabled");
                }
                if (pagenumber == Math.ceil(total / pagesize)) {
                    $("#nextpage").addClass("disabled");
                }
                else {
                    $("#nextpage").removeClass("disabled");
                }
                $(".pagination li").hide();

                var leftcount = 0;
                var forCount = parseInt(linkshow / 2) + 1;
                for (var i = 1; i < forCount; i++) {
                    var index = pagenumber - i;
                    if ($j_page.find("[data-index=" + index + "]").length > 0) {
                        $j_page.find("[data-index=" + index + "]").show();
                    } else {
                        leftcount += 1;
                    }
                }
                var rightcount = 0;
                for (var i = 1; i < forCount + leftcount; i++) {
                    var index = pagenumber + i;
                    if ($j_page.find("[data-index=" + index + "]").length > 0) {
                        $j_page.find("[data-index=" + index + "]").show();
                    } else {
                        rightcount += 1;
                    }
                }
                for (var i = 1; i < forCount + rightcount; i++) {
                    var index = pagenumber - i;
                    $j_page.find("[data-index=" + index + "]").show();
                }


                $j_page.find("#prepage").show();
                $j_page.find("#nextpage").show();
                $j_page.find("[data-index=" + pagenumber + "]").show();

                callback($(this).data("index"))
            }
        });

    }
</script>
</html>

 

三:说明

思路就是:

1.有个数据源 data

2.通过方法 getDataList(1) 获取数据源里面的第一页

3.var PageSize = 3 一页有三条

4.调用方法初始化分页 InitWebPager

5.分页的点击事件又调用  getDataList(传入点击页数)

分类:

技术点:

相关文章:

  • 2021-12-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-09
  • 2022-12-23
猜你喜欢
  • 2021-11-23
  • 2022-01-04
  • 2021-11-23
  • 2021-11-23
  • 2021-11-23
相关资源
相似解决方案