zoukankan      html  css  js  c++  java
  • jq分页功能。

    最近在写官网的分页功能。在网上找了很多案例都太复杂也太重。所以准备写一个简单一点的分页。

    需求:把请求到的数据做分页。

    准备:使用了网上一个简单的分页插件。

    思路:分页相当于tab切换功能。具体实操把数组拆分成若干个数组。这样每个数组就是所需要的每个分页的内容。然后把所有的数组塞到一个对象中就是分页所需要的内容。

    上代码

    分页插件:

    !(function(t, a, e, i) {
        var n = function(a, e) {
            this.ele = a,
            this.defaults = {
                currentPage: 1,
                totalPage: 10,
                isShow: !0,
                count: 5,
                homePageText: '首页',
                endPageText: '尾页',
                prevPageText: '上一页',
                nextPageText: '下一页',
                callback: function() {}
            },
            this.opts = t.extend({}, this.defaults, e),
            this.current = this.opts.currentPage,
            this.total = this.opts.totalPage,
            this.init();
        };
        n.prototype = {
            init: function() {
                this.render(),
                this.eventBind();
            },
            render: function() {
                var t = this.opts;
                var a = this.current;
                var e = this.total;
                var i = this.getPagesTpl();
                var n = this.ele.empty();
                this.isRender = !0,
                this.homePage = '<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="1">' + t.homePageText + '</a>',
                this.prevPage = '<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="' + (a - 1) + '">' + t.prevPageText + '</a>',
                this.nextPage = '<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="' + (a + 1) + '">' + t.nextPageText + '</a>',
                this.endPage = '<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="' + e + '">' + t.endPageText + '</a>',
                this.checkPage(),
                this.isRender && n.html("<div class='ui-pagination-container'>" + this.homePage + this.prevPage + i + this.nextPage + this.endPage + '</div>');
            },
            checkPage: function() {
                var t = this.opts;
                var a = this.total;
                var e = this.current;
                t.isShow || (this.homePage = this.endPage = ''),
                e === 1 && (this.homePage = this.prevPage = ''),
                e === a && (this.endPage = this.nextPage = ''),
                a === 1 && (this.homePage = this.prevPage = this.endPage = this.nextPage = ''),
                a <= 1 && (this.isRender = !1);
            },
            getPagesTpl: function() {
                var t = this.opts;
                var a = this.total;
                var e = this.current;
                var i = '';
                var n = t.count;
                if (a <= n) {
                    for (g = 1; g <= a; g++) {
                        i += g === e ? '<a href="javascript:void(0);" class="ui-pagination-page-item active" data-current="' + g + '">' + g + '</a>' : '<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="' + g + '">' + g + '</a>';
                    }
                } else {
                    var s = n / 2;
                    if (e <= s) {
                        for (g = 1; g <= n; g++) {
                            i += g === e ? '<a href="javascript:void(0);" class="ui-pagination-page-item active" data-current="' + g + '">' + g + '</a>' : '<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="' + g + '">' + g + '</a>';
                        }
                    } else {
                        var r = Math.floor(s);
                        var h = e + r;
                        var o = e - r;
                        var c = n % 2 == 0;
                        h > a && (c ? (o -= h - a - 1,
                        h = a + 1) : (o -= h - a,
                        h = a)),
                        c || h++;
                        for (var g = o; g < h; g++) {
                            i += g === e ? '<a href="javascript:void(0);" class="ui-pagination-page-item active" data-current="' + g + '">' + g + '</a>' : '<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="' + g + '">' + g + '</a>';
                        }
                    }
                }
                return i;
            },
            setPage: function(t, a) {
                return t === this.current && a === this.total ? this.ele : (this.current = t,
                this.total = a,
                this.render(),
                this.ele);
            },
            getPage: function() {
                return {
                    current: this.current,
                    total: this.total
                };
            },
            eventBind: function() {
                var a = this;
                var e = this.opts.callback;
                this.ele.off('click').on('click', '.ui-pagination-page-item', function() {
                    var i = t(this).data('current');
                    a.current != i && (a.current = i,
                    a.render(),
                    e && typeof e === 'function' && e(i));
                });
            }
        },
        t.fn.pagination = function(t, a, e) {
            if (typeof t === 'object') {
                var i = new n(this,t);
                this.data('pagination', i);
            }
            return typeof t === 'string' ? this.data('pagination')[t](a, e) : this;
        }
        ;
    }(jQuery, window, document));

    js:

    $(function () {
                var dt;
                var agg = {};
                var ihtml = [];
                $.ajax({
                    url: 'website/news/list',
                    type: 'POST',
                    dataType: "json",
                    data: {
                        'type': '1'
                    },
                    success: function (datas) { //请求成功后处理函数。
                        dt = datas.result
                        data = datas.result
                        console.log(datas)
                        for (var i in data) {
                            ihtml.push('<div class="col-sm-12 col-md-4">' +
                                '<a href="news-child.html?articleId=' + data[i].id + '"  target="_blank">' +
                                '<div class="f1">' +
                                '<span>' +
                                '<img src="' + data[i].img + '"/ alt="" width="262">' +
                                '</span>'
                                +
                                '<h2 class="f-tit">' + data[i].title + '</h2>' +
                                '<p class="f-cont">' + showHTML(data[i].content, 200, "  ......") + '</p>' +
                                '<p class="f-time">' + data[i].updateTime.substring(0, 10) + '</p>'
                                +
                                '</div>' +
                                '</a>' +
                                '</div>')
    
                        }
                        var cp = 12;
                        var len = ihtml.length / cp;
                        len = parseInt(ihtml.length % cp != 0 ? len + 1 : len);
    
                        for (var i = 0; i < len; i++) {
                            var start = i * cp;
                            var end = start + cp;
                            end = end > ihtml.length ? ihtml.length : end;
                            ihtml.slice(start, end);
                            console.log(ihtml.slice(start, end));
                            agg[i] = (ihtml.slice(start, end));
                            htmltext = '' +
                                '' + (ihtml.slice(start, end)).join("") + '' +
                                ''
                        }
                        ss(len);
                    },
                    error: function (d, msg) {
                        console.log("Could not find user " + msg);
                    }
                });
    
                var htmltext = '';
                function ss(ind) {
    
                    var i = 0;
                    i != 0 ? agghtml(agg[i]) : agghtml(agg[0]);
                    $("#pagination1").pagination({
                        currentPage: 1,
                        totalPage: ind,
                        callback: function (current) {
                            $("#current1").text(current)
                            console.log(current);
                            i = current - 1;
                            agghtml(agg[i]);
                        }
                    });
                }
    
                function agghtml(arr) {
                    htmltext = '' +
                        '' + arr.join("") + '' +
                        '';
    
                    $(".focus .container").html(htmltext);
                }
            });
    
    
            function showHTML(str, length, endstr) {
                if (str != null) {
                    var html = str.replace(/<[^>]+>/g, "").replace(/&nbsp;/ig, "").substring(0, length) + endstr;
                    return html;
                }
                return null;
    
            }

    css

    button {
        display: inline-block;
        padding: 6px 12px;
        font-weight: 400;
        line-height: 1.42857143;
        text-align: center;
        vertical-align: middle;
        cursor: pointer;
        border: 1px solid transparent;
        border-radius: 4px;
        border-color: #28a4c9;
        color: #fff;
        background-color: #5bc0de;
        margin: 20px 20px 0 0;
    }
    
    .box {
        width: 800px;
        margin: 100px auto 0;
        height: 34px;
    }
    
    .pages {
        padding: 50px 0 0;
        text-align: right;
        margin: 0 416px;
    }
    
    .info {
        width: 200px;
        height: 34px;
        line-height: 34px;
    }
    
    
    .ui-pagination-container {
        height: 34px;
        line-height: 34px
    }
    
    .ui-pagination-container .ui-pagination-page-item {
        font-size: 14px;
        padding: 4px 10px;
        background: #fff;
        border: 1px solid #c5b7b7;
        color: #888;
        margin: 0 3px;
        text-decoration: none
    }
    
    .ui-pagination-container .ui-pagination-page-item:hover {
        border-color: #568dbd;
        color: #568dbd;
        text-decoration: none
    }
    
    .ui-pagination-container .ui-pagination-page-item.active {
        background: #568dbd;
        border-color: #568dbd;
        color: #fff;
        cursor: default
    }

    html:

    <div class="content">
        <div class="focus">
            <!-- 渲染内容 -->
            <div class="focus-1 container">
                <!-- <div class="col-sm-12 col-md-4">
                    <a href="news-child.html" target="_blank">
                        <div class="f1"><span><img src="images/n01.jpg" alt="" width="262"></span>
                            <h2 class="f-tit">....</h2>
                            <p class="f-cont">
                                ......
                            </p>
                            <p class="f-time">2020-05-25</p>
                        </div>
                    </a>
                </div>-->
          
            </div>
    
        </div>
        <!-- 分页 -->
        <div id="pagination1" class="pages fl"></div>
    </div>
  • 相关阅读:
    Javascript图片预加载详解
    Canvas入门(3):图像处理和绘制文字
    CSS强制英文、中文换行与不换行 强制英文换行
    数组分隔成两个一组
    scrollview嵌套tableview
    审核被拒:1. 1 Safety: Objectionable Content ;3. 1.1 Business: Payments
    流程控制-用布尔值
    xcode代码提示没了
    sourceTree回退撤销commit
    iOS使用mask切割不规则图案
  • 原文地址:https://www.cnblogs.com/opcec/p/13389066.html
Copyright © 2011-2022 走看看