zoukankan      html  css  js  c++  java
  • jquery分页组件(每页显示多少条)

    /**
     *  功能说明:jPager 分页插件
     *  参数说明:pages:[] 分页的控件个数 @id:显示分页的div ID,@showSelectPage: 是否显示当前分页的条目过滤下拉框
     *  @currentpage 当前第几页
     *  @pagesize   type:number    每页显示多少条目
     *  @total       type:number   总条数
     *  @totalpage   type:number  总页码数
     * */
    
    (function ($) {
        'use strict';
    
        $.jPager = function (option) {
    
            if (!option || option.totalpage == 0) {
    
                for (var i = 0; i < option.pages.length; i++){
                    $('#'+ option.pages[i].id).empty();
                }
                return;
            }
    
            var limitNumber = [20, 30, 50];
    
            var defaultOption = {
                pages: [{
                    id: '',
                    showSelectPage: true
                }],
                currentpage: 1, //当前页
                pagesize: 20, //一页显示数量
                total:1, //条数
                totalpage: 1 //总页码
            };
    
            var pageObj = $.extend(defaultOption, option);
    
            if (pageObj.pages.length == 0) {
                return;
            }
    
            for (var i = 0; i < pageObj.pages.length; i++) {
                var obj = pageObj.pages[i];
                var _btnId = obj.id;
                var _isShowSelect = obj.showSelectPage;
                var tpl = '<div class="pager-left">总共&nbsp;'+ pageObj.total +'&nbsp;条</div></div><div class="pager-center"><span class="pager">';
                if (_isShowSelect) {
                    tpl += '<span class="count" date-val="'+ pageObj.pagesize +'">'+ pageObj.pagesize +'</span>';
                    tpl += '<span class="pageCount">';
                    tpl += '<dl><dt class="open-dt" role-page="role-page" data-val="'+ pageObj.pagesize +'">';
                    tpl += '<i class="icon-yt-menu-list"></i></dt>';
                    tpl += '<dd style="display:none" data-val="'+limitNumber[0]+'">'+limitNumber[0]+'&nbsp;<i class="fa fa-check hide"></i></dd>';
                    tpl += '<dd style="display:none" data-val="'+limitNumber[1]+'">'+limitNumber[1]+'&nbsp;<i class="fa fa-check hide"></i></dd>';
                    tpl += '<dd style="display:none" data-val="'+limitNumber[2]+'">'+limitNumber[2]+'&nbsp;<i class="fa fa-check hide"></i></dd>';
                    tpl += '</dl></span>';
                }
    
                tpl += '<span class="firstPage hide"><i class="fa fa-angle-double-left"></i></span><span class="pageContainer">';
    
                var _pages = [];
                if (pageObj.totalpage > 5) {
    
                    if (pageObj.currentpage <= 3) {
                        _pages = [1, 2, 3, 4, 5];
                    } else if (pageObj.currentpage > 3 && (pageObj.totalpage - pageObj.currentpage >= 2)){
                        _pages[0] = pageObj.currentpage - 2;
                        _pages[1] = pageObj.currentpage - 1;
                        _pages[2] = pageObj.currentpage;
                        _pages[3] = pageObj.currentpage + 1;
                        _pages[4] = pageObj.currentpage + 2;
                    }else if (pageObj.currentpage > 3 && (pageObj.totalpage - pageObj.currentpage == 0)){
                        _pages[0] = pageObj.currentpage - 4;
                        _pages[1] = pageObj.currentpage - 3;
                        _pages[2] = pageObj.currentpage - 2;
                        _pages[3] = pageObj.currentpage - 1;
                        _pages[4] = pageObj.currentpage;
                    }else if (pageObj.currentpage > 3 && (pageObj.totalpage - pageObj.currentpage == 1)) {
                        _pages[0] = pageObj.currentpage - 3;
                        _pages[1] = pageObj.currentpage - 2;
                        _pages[2] = pageObj.currentpage - 1;
                        _pages[3] = pageObj.currentpage;
                        _pages[4] = pageObj.currentpage + 1;
                    }
    
                } else {
                    for (var j = 0; j < pageObj.totalpage; j++ ) {
                        _pages[j] = j + 1;
                    }
                }
    
                for (var k = 0; k < _pages.length; k++ ) {
                    tpl += '<span class="page" data-page="page'+ _pages[k] +'">'+ _pages[k] +'</span>';
                }
    
                tpl += '</span><span class="lastPage hide"><i class="fa fa-angle-double-right"></i></span></span></div>';
    
                var _totalTpl = '<div class="pull-left">'+ pageObj.total +'&nbsp;<span>条数据</span></div>';
                var _select = '<select id="goToPage">';
                var _sOption = '';
                for(var p = 0; p < pageObj.totalpage; p++) {
                    _sOption += '<option value="'+ (p + 1) +'">'+ (p + 1) +'</option>';
                }
    
                _select += _sOption + '</select>';
                var _gogoPage = '<div class="pager-right">跳转至'+ _select +'页</div>';
                if (obj.showTotal) {
                    tpl = _totalTpl + tpl;
                }
                $('#'+_btnId).html(tpl+_gogoPage);
                $('#goToPage').val(pageObj.currentpage);
    
                //设置上一页 、下一页 是否可见
                if (pageObj.currentpage == 1) {
                    if (pageObj.totalpage >1) {
                        $('.lastPage').removeClass('hide');
                    }
                }else if (pageObj.currentpage > 1) {
                    if (pageObj.currentpage == pageObj.totalpage) {
                        $('.firstPage').removeClass('hide');
                    }else{
                        $('.firstPage').removeClass('hide');
                        $('.lastPage').removeClass('hide');
                    }
                }
    
                //切换页码
                $('#goToPage').unbind().bind('change', function () {
                    var _val = $(this).val();
                    var page = {
    //                    limit: $('.pager .count:eq(0)').text().trim(),
                        page: _val
                    }
    
                    obj.callback(page);
                });
    
    
                //点击页码数量
                $('.pageCount dd').click(function () {
    
                    var _hasClass = $(this).children('i').hasClass('hide');
                    if (!_hasClass) {
                        return;
                    }
    
                    var _text = $(this).text();
                    var _val = $(this).attr('data-val');
                    $('.pager .count').text(_text);
                    $(this).siblings('dd').children('i').addClass('hide');
                    $(this).children('i').removeClass('hide');
                    if($('#limit')){
                        $('#ipt_limit').val(_text);
                    }
    
                    var page = {
                        limit: $('.pager .count:eq(0)').text().trim(),
                        page: 1
                    }
    
                    $('.pageCount dd').slideUp(10, function () {
                        $(this).siblings('dt').attr('style', '').attr('data-val', _val);
                        $(this).siblings('dd').children('i').addClass('hide');
                    });
                    obj.callback(page);
                });
    
                //点击页码
                $('span[data-page]').click(function () {
                    var _hasClass = $(this).hasClass('active');
    
                    if (_hasClass) {
                        return;
                    }
    
                    var _page = $(this).attr('data-page');
                    $('span[data-page]').removeClass('active');
                    //$(this).addClass('active');
                    $('span[data-page="'+ _page +'"]').addClass('active');
                    if($('#ipt_page')){
                        $('#ipt_page').val(_page);
                    }
    
                    var page = {
                        page: $('.pager:eq(0) .active').text().trim(),
                        limit: $('.pager .count:eq(0)').text().trim()
                    }
                    obj.callback(page);
                });
    
                //点击上一页
                $('#'+_btnId +' span .firstPage i').bind('click', function () {
                    var currentPage = parseInt($('.pager:eq(0) .active').text().trim());
                    if (currentPage == 1) {
                        $('.firstPage').addClass('hide');
                        return;
                    }
                    var page = {
                        page: 1,
                        limit: $('.pager .count:eq(0)').text().trim()
                    }
                    obj.callback(page);
                });
    
                //点击下一页
                $('#'+_btnId +' span .lastPage i').click(function () {
                    var currentPage = parseInt($('.pager:eq(0) .active').text().trim());
                    if (currentPage == pageObj.totalpage) {
                        $('.lastPage').addClass('hide');
                        return;
                    }
                    var page = {
                        page: pageObj.totalpage,
                        limit: $('.pager .count:eq(0)').text().trim()
                    }
                    obj.callback(page);
                });
            }
    
            //初始化,选中当前页码
            $('span[data-page]').removeClass('active');
            $('span[data-page="page'+ pageObj.currentpage +'"]').addClass('active');
    
            /* 切换每页条数  */
            $('.pageCount dt').click(function() {
    
                var _val = $(this).attr('data-val');
                $(this).siblings('dd[data-val="'+_val+'"]').children('i').removeClass('hide');
    
                $('dd').slideUp(10, function() {
                    $('.select-has-border').removeClass('select-has-border-open').children('dd').css('display', 'none');
                    $('.campaign-query').css('border-radius', '5px');
                    $('.cp-select').removeClass('cp_select_open');
                });
                var _isShow  = $(this).siblings('dd').css('display') == 'none' ? false : true;
                if (_isShow) {
                    $(this).siblings('dd').hide();//.removeClass('page-Open').addClass('page-Close')
                    var _css = {
                        'borderTop': '0px solid #ccc',
                        'border-top-right-radius': '0px',
                        'border-top-left-radius': '0px',
                        'backgroundColor': 'white',
                        'color': ''
                    };
                    $(this).css(_css);
                } else {
                    $(this).siblings('dd').slideDown(10);//.removeClass('page-Close').addClass('page-Open')
                    var _css = {
                        'border-top-right-radius': '5px',
                        'border-top-left-radius': '5px',
                        'backgroundColor': '#414C59',
                        'color': 'white'
                    };
                    $(this).css(_css);
                }
            });
    
        };
    })(jQuery);
    /*  分页  */
    .pager{
        height: 30px;
        line-height: 30px;
        padding: 0;
        margin-top: 0;
        margin-left: 70px;
        display: inline-block;
    }
    
    .pager{
        float:left;
    }
    
    .pager .pageCount{
        float:left;
        60px;
        height: 30;
        line-height: 30px;
        text-align: left;
        margin-left: -5px;
        text-indent: 5px;
    }
    
    .pager .count{
        padding-top:3px;
        float:left;
        cursor:default;
    }
    
    .pager .pageCount dl{
        margin: 0;
        padding: 0;
         60px;
    }
    
    .pager .pageCount dt>i:first-child{
        vertical-align:bottom;
        margin-top: 3px;
    }
    
    .pager .pageCount dd{
        background-color: #414C59;
        height: 24px;
        60px;
        line-height: 24px;
        text-align: left;
        text-indent: 5px;
        color: white;
        border:none;
    }
    
    .pager .pageCount dd:last-child{
        border-bottom-right-radius: 5px;
        border-bottom-left-radius: 5px;
    }
    
    .pager .pageCount dd:hover{
        background-color: #333E4D;
    }
    
    .pager-left{
        float:left;
         100px;
    }
    
    .pager-center{
        float:left;
         340px;
    }
    
    .pager-right{
        float: left;
         160px;
    }
    
    #goToPage{
        50px;
        margin-left: 5px;
        margin-right: 5px;
    }
    
    .pager dt:hover{
        color:#2AC3FA;
    }
    
    .pager .firstPage{
        margin-left: 20px;
    }
    
    .pager .firstPage>i{
        margin-top: 5px;
    }
    
    .pager .page{
        margin-left: 5px;
    }
    
    .pager .lastPage{
        margin-left: 10px;
    }
    
    .pager .lastPage>i{
        margin-top: 5px;
    }
    
    .pager i.little{
        font-size:10px;
        vertical-align: top;
        margin-top: 5px;
        margin-left: 2px
    }
    
    .pager span{
        cursor: pointer;
        border:1px solid transparent;
    }
    
    .pager .page{
        padding-left: 3px;
        padding-right: 5px;
        padding-top: 2px;
        padding-bottom: 2px;
        border-radius: 5px;
    }
    
    .pager span.active{
        background-color: #2AC3FA;
        color:white;
        padding-left: 5px;
        padding-right: 5px;
        padding-top: 1px;
        padding-bottom: 2px;
        border-radius: 5px;
    }
    
    .pager span.page:hover{
        background-color: white;
        border:1px solid #2AC3FA;
        color:#2AC3FA;
    }
    
    .pager .lastPage:hover, .pager .firstPage:hover{
        color:#2AC3FA;
    }
    
    .pager .open{
        color:#ffffff;
        background-color: #414C59;
    }
    
    .pager span{
        display:inline-block;
        height: 24px;
        line-height: 20px;
        margin-left: 2px;
        float: left;
    }
    
    .pager .pageContainer{
        display: inline-block;
        min- 26px;
         auto;
        height: 30px;
        line-height: 30px;
        overflow:hidden;
    }

    需要的参数:

    使用方法:

    //分页控件
                    var option = {
                        pages: [{
                            id: 'pageIndex',
                            showSelectPage: false,
                            callback: function (option) {
                                //点击页码回调函数
                                //goPage(option);
                                var param = {
                                    'grade_id': $('#addGrade').val(),
                                    'class_id': $('#addClass').val(),
                                    'start_date':  $('#startTime').val(),
                                    'end_date': $('#endTime').val(),
                                    'status': $('#foodStatus').val()
                                };
    
                                param = $.extend(param, option);
                                renderSyllabusIndex(param); //点击页码的回调函数
                            }
                        }],
                        pagesize: _data.pagesize,
                        total: _data.total,
                        currentpage: _data.currentpage,
                        totalpage: _data.totalpage
                    };
    
                    $.jPager(option);

    效果:

  • 相关阅读:
    CF1270H
    CF1305G
    LeetCode-Sqrt(x)
    LeetCode-Plus One
    LeetCode-Integer to Roman
    LeetCode-Roman to Integer
    LeetCode-String to Integer (atoi)
    LeetCode-Reverse Integer
    C++
    LeetCode-Gray Code
  • 原文地址:https://www.cnblogs.com/307914070/p/4599244.html
Copyright © 2011-2022 走看看