zoukankan      html  css  js  c++  java
  • js 分页

    <!DOCTYPE html>        
    <html lang="en">        
    <head>        
        <meta charset="UTF-8">        
        <title>js 分页</title>      
        <style type="text/css">  
            .m-pagination{margin: 0 ;text-align:center;display: inline-block;}
            .m-pagination li{text-align: center;float: left;font-size: 14px;border: 1px solid #ccc;margin: 2px;padding: 0px 10px;cursor: pointer;line-height: 20px;list-style-type: none;}
            .m-pagination .m-current{font-weight: bold;}
            .m-pagination .m-jump-input{outline:none;border:0;margin:0;padding:0;36px;height:18px;line-height:18px;text-align:center;}
            .m-pagination .m-jump{padding: 0 10px 0 0;}
            .m-pagination .m-jump-btn{display:inline-block;height:100%;border-left:1px solid #DDD;padding-left:10px;}
      </style>   
    </head>        
    <body>  
        <div><ul id="m-pagination" class="m-pagination"></ul></div>
    
        <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>  
        <script type="text/javascript">  
            var pageFixed = function(user_config) {
                var c, end, i, k, l_offset, r_offset, start, v, _i;
                c = {
                    id: 1,
                    total: 1,
                    limit: 10,
                    render: function (id, flag) {
                    }
                };
                for (k in user_config) {
                    v = user_config[k];
                    c[k] = v;
                }
                start = Math.ceil(c.id + 1 - c.limit / 2);
                end = start + c.limit - 1;
                if (start < 1) {
                    l_offset = 1 - start;
                    start = 1;
                    end += l_offset;
                }
                if (end > c.total) {
                    r_offset = end - c.total;
                    start = Math.max(1, start - r_offset);
                    end = c.total;
                }
                c.render(1, 'start');
                if (start > 1) {
                    c.render(Math.max(1, c.id - c.limit), 'pre_group');
                }
                for (i = _i = start; start <= end ? _i <= end : _i >= end; i = start <= end ? ++_i : --_i) {
                    if (i === c.id) {
                        c.render(i, 'current');
                    } else {
                        c.render(i, 'nearby');
                    }
                }
                if (end < c.total) {
                    c.render(Math.min(c.total, c.id + c.limit), 'next_group');
                }
                c.render(c.total, 'end');
                c.render(c.total, 'jump');
            };
    
            var render_page_new = function(id, total) {
                var pagination = $('#m-pagination');
                pagination.html('');
                if (total > 1) {
                    pageFixed({
                        id: id,
                        limit: 6,
                        total: total,
                        render: function (id, flag) {
                            switch (flag) {
                                case 'start':
                                    return pagination.append('<li data-page-id="' + id + '"><span>首页</span></li>');
                                case 'pre_group':
                                    return pagination.append('<li data-page-id="' + id + '"><span>...</span></li>');
                                case 'nearby':
                                    return pagination.append('<li data-page-id="' + id + '"><span>' + id + '</span></li>');
                                case 'current':
                                    return pagination.append('<li class="m-current" data-page-id="' + id + '"><span>' + id + '</span></li>');
                                case 'next_group':
                                    return pagination.append('<li data-page-id="' + id + '"><span>...</span></li>');
                                case 'end':
                                    return pagination.append('<li id="m-end" data-page-id="' + id + '"><span>尾页</span></li>');
                                case 'jump':
                                    return pagination.append('<li class="m-jump"><input value="' + Math.ceil(total / 2) + '" id="m-jump-input" type="text" class="m-jump-input"><span class="m-jump-btn" id="m-jump-btn">跳转</span></li>');
                            }
                        }
                    });
                }
            };
            render_page_new(1, 30);
            $('#m-pagination').on('click', 'li', function (e) {
                var that = $(this);
                var page_id;
                e.preventDefault();
                if (that.hasClass('m-jump')) {
    
                } else {
                    if (!$(this).hasClass('current')) {
                        page_id = $(this).data('page-id');
                        render_page_new(page_id, 30);
                    }
                }
            });
            $('#m-pagination').on('click', '#m-jump-btn', function (e) {
                var page_id = $('#m-jump-input').val();
                if (isNaN(page_id) || page_id == '' || page_id <= 0) {
                    alert('请输入正确的页数!');
                } else if (parseInt(page_id) > parseInt($('#m-end').data('page-id'))) {
                    alert('您输入的页数过大!');
                } else {
                    render_page_new(page_id - 0, 30);
                }
            });
        </script>  
    </body>        
    </html> 
    

  • 相关阅读:
    Java基础学习总结(41)——JPA常用注解
    Java基础学习总结(41)——JPA常用注解
    【云速建站】视频播放专题
    一招教你如何修复MySQL slave中继日志损坏问题
    【nodejs原理&源码赏析(3)】欣赏手术级的原型链加工艺术
    【云速建站】后台数据批量导入导出
    【云速建站】会员注册弹窗添加及设置
    【nodejs原理&源码赏析(2)】KOA中间件的基本运作原理
    【nodejs原理&源码赏析(1)】Express中间件系统的基本实现
    补习系列(5)-springboot- restful应用
  • 原文地址:https://www.cnblogs.com/xutongbao/p/9924898.html
Copyright © 2011-2022 走看看