• js 分页插件(jQuery)


    参考:http://www.jb51.net/article/117191.htm 侵删

    css 部分

    @charset "utf=8";
    *{
     box-sizing: border-box;
     padding: 0;
     margin: 0;
    }
    .page{
     font-size: 13px;
     text-align: center;
     margin-top: 20px;
    }
    .page .page_to{
     display: inline-block;
     max- 250px;
    }
    .page .page_to li{
     display: inline-block;
      auto;
     height: auto;
     border: 1px solid #ddd;
     padding:5px 10px;
     border-left- 0;
     color: #323232;
     cursor: pointer;
    }
    .page .page_to li.page_hide{
     display: none;
    }
    .page .page_to li:hover{
     color: #32C2CD;
     background-color: #f4f4f4;
     border-color: #DDDDDD;
    }
    .page .page_to li:first-child{
     border-left- 1px;
    }
    .page .page_jump{
     display: inline-block;
      180px;
    }
    .page .page_jump input.page_jump_input{
      52px;
     height: 28px;
     text-align: center;
     text-decoration: none;
     background-color: #fff;
     border: 1px solid #ddd;
     margin:0 4px;
    }
    .page .page_jump input.page_jump_btn{
     display: inline-block;
     padding: 2px 10px;
     margin-left: 5px;
     font-size: 14px;
     font-weight: 400;
     line-height: 1.42857143;
     text-align: center;
     white-space: nowrap;
     /*vertical-align: middle;*/
     -ms-touch-action: manipulation;
     touch-action: manipulation;
     cursor: pointer;
     -webkit-user-select: none;
     -moz-user-select: none;
     -ms-user-select: none;
     user-select: none;
     border: 1px solid transparent;
     border-radius: 4px;
     background-color: #32c5d2;
     color: #FFFFFF;
     font-weight: bold;
    }
     

    js 部分

    (function($, window, undefined) {
    
        var curPage = '',
            //跳转是否有值
            jumpVal = '',
            //从DOM中重新获取数据总数/总页数
            lists = '',
            totals = '',
            //是否返回值
            isTrue = false;
    
        var Page = function(opts) {
            this.settings = $.extend({}, Page.defaults, opts);
            curPage = this.settings.initPage;
            totals = this.settings.totalPages;
            jumpVal = this.settings.inputVal;
            this.init();
        };
    
        //默认配置
        Page.defaults = {
            container: '.page',
            setPos: 'body',
            totalPages: null,
            totalLists: null,
            initPage: 1,
            inputVal: 1,
            callBack: null
        };
    
        Page.prototype = {
            init: function() {
                this.create();
            },
            create: function() {
                var _template = '<div class="page">' +
                    '<span class="page_details">' +
                    '共<span class="page_num">' + this.settings.totalLists + '</span>条记录,' +
                    '第<span class="page_current">' + curPage + '</span>/' +
                    '<span class="page_size">' + this.settings.totalPages + '</span>页' +
                    '</span>' +
                    '<div class="page_to">' +
                    '<ul class="flex_parent">' +
                    '<li class="page_first flex_child">首页</li>' +
                    '<li class="page_pre page_hide flex_child">« 上一页</li>' +
                    '<li class="page_next flex_child">下一页 »</li>' +
                    '<li class="page_last flex_child">末页</li>' +
                    '</ul>' +
                    '</div>' +
                    '<div class="page_jump">' +
                    '<span>第:<input type="number" class="page_jump_input" value="' + this.settings.inputVal + '">页</span>' +
                    '<input type="button" class="page_jump_btn" value="Go">' +
                    '</div>' +
                    '</div>';
                $(this.settings.setPos).append(_template);
                this.refreshDom();
                this.bindEvent();
            },
            bindEvent: function() {
                var _this = this;
                //跳转首页
                $(this.settings.container).on("click", ".page_first", function() {
    
                    lists = $(_this.settings.container).find(".page_num").text();
                    totals = $(_this.settings.container).find(".page_size").text();
    
                    if ($.isFunction(_this.settings.callBack)) {
                        curPage = 1;
                        isTrue = _this.settings.callBack(1);
                        if (isTrue) {
                            _this.refreshDom();
                            $(_this.settings.container).find(".page_current").text(1);
                            $(_this.settings.container).find(".page_jump_input").val(curPage);
                        }
                    }
                });
                //跳转上一页
                $(this.settings.container).on("click", ".page_pre", function() {
    
                    lists = $(_this.settings.container).find(".page_num").text();
                    totals = $(_this.settings.container).find(".page_size").text();
    
                    if ($.isFunction(_this.settings.callBack)) {
                        if (curPage > 1) {
                            curPage = curPage - 1;
                            isTrue = _this.settings.callBack(curPage);
                            if (isTrue) {
                                _this.refreshDom();
                                $(_this.settings.container).find(".page_current").text(curPage);
                                $(_this.settings.container).find(".page_jump_input").val(curPage);
                            }
                        }
                    }
                });
                //跳转下一页
                $(this.settings.container).on("click", ".page_next", function() {
                    lists = $(_this.settings.container).find(".page_num").text();
                    totals = $(_this.settings.container).find(".page_size").text();
                    if ($.isFunction(_this.settings.callBack)) {
                        if (curPage < totals) {
                            curPage = curPage + 1;
                            isTrue = _this.settings.callBack(curPage);
                            if (isTrue) {
                                _this.refreshDom();
                                $(_this.settings.container).find(".page_current").text(curPage);
                                $(_this.settings.container).find(".page_jump_input").val(curPage);
                            }
                        }
                    }
                });
                //跳转末页
                $(this.settings.container).on("click", ".page_last", function() {
    
                    lists = $(_this.settings.container).find(".page_num").text();
                    totals = $(_this.settings.container).find(".page_size").text();
    
                    if ($.isFunction(_this.settings.callBack)) {
                        curPage = totals;
                        isTrue = _this.settings.callBack(curPage);
                        if (isTrue) {
                            _this.refreshDom();
                            $(_this.settings.container).find(".page_current").text(totals);
                            $(_this.settings.container).find(".page_jump_input").val(curPage);
                        }
                    }
                });
                //Go跳转
                $(this.settings.container).on("click", ".page_jump_btn", function() {
                    lists = $(_this.settings.container).find(".page_num").text();
                    totals = $(_this.settings.container).find(".page_size").text();
    
                    if ($.isFunction(_this.settings.callBack)) {
                        jumpVal = Number($(_this.settings.container).find("input.page_jump_input").val());
                        // console.log('跳转的页数:' + jumpVal + ';跳转之前的页数:' + curPage);
                        isTrue = _this.settings.callBack(jumpVal);
                        if (jumpVal >= 1 && jumpVal <= totals) {
                            curPage = jumpVal;
                            // isTrue = _this.settings.callBack(curPage);
                            if (isTrue) {
                                _this.refreshDom();
                                $(_this.settings.container).find(".page_current").text(curPage);
                                $(_this.settings.container).find(".page_jump_input").val(curPage);
                            }
                        } else {
                            jumpVal = curPage;
                        }
                    }
                });
            },
            refreshDom: function() {
                $(this.settings.container).find("li.flex_child").removeClass("page_hide");
                if (Number(totals) == 1) {
                    $(this.settings.container).find(".page_pre").addClass("page_hide");
                    $(this.settings.container).find(".page_next").addClass("page_hide");
                } else if (Number(totals) == 2) {
                    if (Number(curPage) == 1) {
                        $(this.settings.container).find(".page_pre").addClass("page_hide");
                    } else {
                        $(this.settings.container).find(".page_next").addClass("page_hide");
                    }
                } else if (Number(curPage) == 1 && Number(totals) > 2) {
                    $(this.settings.container).find(".page_pre").addClass("page_hide");
                } else if (Number(curPage) == Number(totals) && Number(totals) > 2) {
                    $(this.settings.container).find(".page_next").addClass("page_hide");
                }
            }
        };
    
        var pageInit = function(opts) {
            return new Page(opts);
        };
    
        window.pageInit = $.pageInit = pageInit;
    
    })(jQuery, window, undefined);

    调用

    function page(){
        $.pageInit({
            container: '.page', //容器:默认page
            setPos: '.pageBox', //放置位置:默认body
            totalPages: totalPages, //总页数:必填(后台返回的,加载列表可以取到)
            totalLists: totalCount, //数据总数:必填(后台返回的,加载列表可以取到)
            initPage: pageNo, //初始页码:默认1(后台会返回,自己也可以定义)
            inputVal: 1, //设置跳转的input值:默认1
            //要执行的函数:默认null,必须为fn且返回true则可执行分页,false则不执行
            callBack: function(n) {
                var flag = true;
           console.log(n); getCustomerList(n);
    //getCustomerList 是加载列表的方法;n 为返回的页码数, return flag; } }); };
  • 相关阅读:
    iframe和DataForm
    django文件上传
    MySQL 对于千万级的大表要怎么优化?
    mysql myisam转innodb的2种方法
    mysql 中order by 与group by的顺序
    sql 时间转换问题 from_unixtime() UNIX_TIMESTAMP()
    MySQL大表优化方案
    iptables nat及端口映射
    一个不可思议的MySQL慢查分析与解决
    iptables中DNAT、SNAT和MASQUERADE的理解
  • 原文地址:https://www.cnblogs.com/Byme/p/8670365.html
Copyright © 2020-2023  润新知