• 分页插件


    <!DOCTYPE html>
    <html>
        <head>
            <title>页码可滚动的jQuery分页插件jPaginate在线演示</title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
            <meta name="description" content="jPaginate - jQuery Pagination Plugin" />
            <meta name="keywords" content="jquery, plugin, pagination, fancy" />
            <link rel="stylesheet" type="text/css" href="css/style.css" media="screen"/>
            <style>
                body{
                    background: #a7c7dc  repeat-x top left;
                    font-family: verdana;
                    padding:0px;
                    margin:0px;
                    letter-spacing:2px;
                }
                .header{
                    position:absolute;
                    top:0px;
                    left:0px;
                    width:100%;
                    height:80px;            
                }
                .header h1{
                    color:#fff;
                    font-size: 38px;
                    margin:0px 0px 0px 30px;
                    font-weight:100;
                    line-height:80px;
                    padding:0px;
                }
                .footer{
                    width:100%;
                    margin:10px 0px 5px 0px;
                }
                a img{
                    border:none;
                    outline:none;
                }
                .content{
                    margin-top:10px;
                    padding:0px;
                    bottom:0px;
                }
                .about{
                    width:100%;
                    height:400px;
                    background:transparent url(about.png) repeat-x top left;
                    border-top:2px solid #ccc;
                    border-bottom:2px solid #000;
                }
                .about .text{
                    width:16%;
                    margin:5px 2% 10px 2%;
                    height:380px;
                    float:left;
                    color:#FCFEF3;
                    font-size: 16px;
                    text-align:justify;
                    letter-spacing:0px;
                }
                .about .text h1{
                    border-bottom: 1px dashed #ccc;
                    color:#fff;
                }
                .demo{
                    width:580px;
                    padding:10px;
                    margin:10px auto;
                    border: 1px solid #fff;
                    background-color:#f7f7f7;
                }
                h1{
                    color:#404347;
                    margin:5px 30px 20px 0px;
                    font-weight:100;
                }
                .pagedemo{
                    border: 1px solid #CCC;
                    width:310px;
                    margin:2px;
                    padding:50px 10px;
                    text-align:center;
                    background-color:white;    
                }
            </style>
        </head>
        <body>
            <div class="content">
                 <div class="demo">
                    <h1>Demo 4</h1>
                    <div id="demo4">                   
                    </div>
                </div>
                <div id="paginationdemo" class="demo">
                    <h1>Demo 5</h1>
                    <div id="p1" class="pagedemo _current" style="">Page 1</div>
                    <div id="p2" class="pagedemo" style="display:none;">Page 2</div>
                    <div id="p3" class="pagedemo" style="display:none;">Page 3</div>
                    <div id="p4" class="pagedemo" style="display:none;">Page 4</div>
                    <div id="p5" class="pagedemo" style="display:none;">Page 5</div>
                    <div id="p6" class="pagedemo" style="display:none;">Page 6</div>
                    <div id="p7" class="pagedemo" style="display:none;">Page 7</div>
                    <div id="p8" class="pagedemo" style="display:none;">Page 8</div>
                    <div id="p9" class="pagedemo" style="display:none;">Page 9</div>
                    <div id="p10" class="pagedemo" style="display:none;">Page 10</div>
                    <div id="demo5">                   
                    </div>
                </div>
            </div>
            <script type="text/javascript" src="jquery-1.3.2.js"></script>
            <script src="jquery.paginate.js" type="text/javascript"></script>
            <script type="text/javascript">
            $(function() {
                $("#demo4").paginate({
                    count         : 50,
                    start         : 20,
                    display     : 12,
                    border                    : false,
                    text_color              : '#79B5E3',
                    background_color        : 'none',    
                    text_hover_color          : '#2573AF',
                    background_hover_color    : 'none', 
                    images        : false,
                    mouse        : 'press'
                });
                $("#demo5").paginate({
                    count         : 10,
                    start         : 1,
                    display     : 7,
                    border                    : true,
                    border_color            : '#fff',
                    text_color              : '#fff',
                    background_color        : 'black',    
                    border_hover_color        : '#ccc',
                    text_hover_color          : '#000',
                    background_hover_color    : '#fff', 
                    images                    : false,
                    mouse                    : 'press',
                    onChange                 : function(page){
                                                $('._current','#paginationdemo').removeClass('_current').hide();
                                                $('#p'+page).addClass('_current').show();
                                              }
                });
            });
            </script>
        </body>
    </html>

    CSS样式

    .jPaginate{
        height:34px;
        position:relative;
        color:#a5a5a5;
        font-size:small;   
        width:100%;
    }
    .jPaginate a{
        line-height:15px;
        height:18px;
        cursor:pointer;
        padding:2px 5px;
        margin:2px;
        float:left;
    }
    .jPag-control-back{
        position:absolute;
        left:0px;
    }
    .jPag-control-front{
        position:absolute;
        top:0px;
    }
    .jPaginate span{
        cursor:pointer;
    }
    ul.jPag-pages{
        float:left;
        list-style-type:none;
        margin:0px 0px 0px 0px;
        padding:0px;
    }
    ul.jPag-pages li{
        display:inline;
        float:left;
        padding:0px;
        margin:0px;
    }
    ul.jPag-pages li a{
        float:left;
        padding:2px 5px;
    }
    span.jPag-current{
        cursor:default;
        font-weight:normal;
        line-height:15px;
        height:18px;
        padding:2px 5px;
        margin:2px;
        float:left;
    }
    ul.jPag-pages li span.jPag-previous,
    ul.jPag-pages li span.jPag-next,
    span.jPag-sprevious,
    span.jPag-snext,
    ul.jPag-pages li span.jPag-previous-img,
    ul.jPag-pages li span.jPag-next-img,
    span.jPag-sprevious-img,
    span.jPag-snext-img{
        height:22px;
        margin:2px;
        float:left;
        line-height:18px;
    }
    
    ul.jPag-pages li span.jPag-previous,
    ul.jPag-pages li span.jPag-previous-img{
        margin:2px 0px 2px 2px;
        font-size:12px;
        font-weight:bold;
            width:10px;
    
    }
    ul.jPag-pages li span.jPag-next,
    ul.jPag-pages li span.jPag-next-img{
        margin:2px 2px 2px 0px;
        font-size:12px;
        font-weight:bold;
        width:10px;
    }
    span.jPag-sprevious,
    span.jPag-sprevious-img{
        margin:2px 0px 2px 2px;
        font-size:18px;
        width:15px;
        text-align:right;
    }
    span.jPag-snext,
    span.jPag-snext-img{
        margin:2px 2px 2px 0px;
        font-size:18px;
        width:15px;
         text-align:right;
    }

    JS

    (function($) {
        $.fn.paginate = function(options) {
            var opts = $.extend({}, $.fn.paginate.defaults, options);
            return this.each(function() {
                $this = $(this);
                var o = $.meta ? $.extend({}, opts, $this.data()) : opts;
                var selectedpage = o.start;
                $.fn.draw(o,$this,selectedpage);    
            });
        };
        var outsidewidth_tmp = 0;
        var insidewidth      = 0;
        var bName = navigator.appName;
        var bVer = navigator.appVersion;
        if(bVer.indexOf('MSIE 7.0') > 0)
            var ver = "ie7";
        $.fn.paginate.defaults = {
            count         : 5,
            start         : 12,
            display      : 5,
            border                    : true,
            border_color            : '#fff',
            text_color              : '#8cc59d',
            background_color        : 'black',    
            border_hover_color        : '#fff',
            text_hover_color          : '#fff',
            background_hover_color    : '#fff', 
            rotate                  : true,
            images                    : true,
            mouse                    : 'slide',
            onChange                : function(){return false;}
        };
        $.fn.draw = function(o,obj,selectedpage){
            if(o.display > o.count)
                o.display = o.count;
            $this.empty();
            if(o.images){
                var spreviousclass     = 'jPag-sprevious-img';
                var previousclass     = 'jPag-previous-img';
                var snextclass         = 'jPag-snext-img';
                var nextclass         = 'jPag-next-img';
            }
            else{
                var spreviousclass     = 'jPag-sprevious';
                var previousclass     = 'jPag-previous';
                var snextclass         = 'jPag-snext';
                var nextclass         = 'jPag-next';
            }
            var _first        = $(document.createElement('a')).addClass('jPag-first').html('First');
            
            if(o.rotate){
                if(o.images) var _rotleft    = $(document.createElement('span')).addClass(spreviousclass);
                else var _rotleft    = $(document.createElement('span')).addClass(spreviousclass).html('&laquo;');        
            }
            
            var _divwrapleft    = $(document.createElement('div')).addClass('jPag-control-back');
            _divwrapleft.append(_first).append(_rotleft);
            
            var _ulwrapdiv    = $(document.createElement('div')).css('overflow','hidden');
            var _ul            = $(document.createElement('ul')).addClass('jPag-pages')
            var c = (o.display - 1) / 2;
            var first = selectedpage - c;
            var selobj;
            for(var i = 0; i < o.count; i++){
                var val = i+1;
                if(val == selectedpage){
                    var _obj = $(document.createElement('li')).html('<span class="jPag-current">'+val+'</span>');
                    selobj = _obj;
                    _ul.append(_obj);
                }    
                else{
                    var _obj = $(document.createElement('li')).html('<a>'+ val +'</a>');
                    _ul.append(_obj);
                    }                
            }        
            _ulwrapdiv.append(_ul);
            
            if(o.rotate){
                if(o.images) var _rotright    = $(document.createElement('span')).addClass(snextclass);
                else var _rotright    = $(document.createElement('span')).addClass(snextclass).html('&raquo;');
            }
            
            var _last        = $(document.createElement('a')).addClass('jPag-last').html('Last');
            var _divwrapright    = $(document.createElement('div')).addClass('jPag-control-front');
            _divwrapright.append(_rotright).append(_last);
            
            //append all:
            $this.addClass('jPaginate').append(_divwrapleft).append(_ulwrapdiv).append(_divwrapright);
                
            if(!o.border){
                if(o.background_color == 'none') var a_css                 = {'color':o.text_color};
                else var a_css                                             = {'color':o.text_color,'background-color':o.background_color};
                if(o.background_hover_color == 'none')    var hover_css     = {'color':o.text_hover_color};
                else var hover_css                                         = {'color':o.text_hover_color,'background-color':o.background_hover_color};    
            }    
            else{
                if(o.background_color == 'none') var a_css                 = {'color':o.text_color,'border':'1px solid '+o.border_color};
                else var a_css                                             = {'color':o.text_color,'background-color':o.background_color,'border':'1px solid '+o.border_color};
                if(o.background_hover_color == 'none')    var hover_css     = {'color':o.text_hover_color,'border':'1px solid '+o.border_hover_color};
                else var hover_css                                         = {'color':o.text_hover_color,'background-color':o.background_hover_color,'border':'1px solid '+o.border_hover_color};
            }
            
            $.fn.applystyle(o,$this,a_css,hover_css,_first,_ul,_ulwrapdiv,_divwrapright);
            //calculate width of the ones displayed:
            var outsidewidth = outsidewidth_tmp - _first.parent().width() -3;
            if(ver == 'ie7'){
                _ulwrapdiv.css('width',outsidewidth+72+'px');
                _divwrapright.css('left',outsidewidth_tmp+6+72+'px');
            }
            else{
                _ulwrapdiv.css('width',outsidewidth+'px');
                _divwrapright.css('left',outsidewidth_tmp+6+'px');
            }
            
            if(o.rotate){
                _rotright.hover(
                    function() {
                      thumbs_scroll_interval = setInterval(
                        function() {
                          var left = _ulwrapdiv.scrollLeft() + 1;
                          _ulwrapdiv.scrollLeft(left);
                        },
                        20
                      );
                    },
                    function() {
                      clearInterval(thumbs_scroll_interval);
                    }
                );
                _rotleft.hover(
                    function() {
                      thumbs_scroll_interval = setInterval(
                        function() {
                          var left = _ulwrapdiv.scrollLeft() - 1;
                          _ulwrapdiv.scrollLeft(left);
                        },
                        20
                      );
                    },
                    function() {
                      clearInterval(thumbs_scroll_interval);
                    }
                );
                if(o.mouse == 'press'){
                    _rotright.mousedown(
                        function() {
                          thumbs_mouse_interval = setInterval(
                            function() {
                              var left = _ulwrapdiv.scrollLeft() + 5;
                              _ulwrapdiv.scrollLeft(left);
                            },
                            20
                          );
                        }
                    ).mouseup(
                        function() {
                          clearInterval(thumbs_mouse_interval);
                        }
                    );
                    _rotleft.mousedown(
                        function() {
                          thumbs_mouse_interval = setInterval(
                            function() {
                              var left = _ulwrapdiv.scrollLeft() - 5;
                              _ulwrapdiv.scrollLeft(left);
                            },
                            20
                          );
                        }
                    ).mouseup(
                        function() {
                          clearInterval(thumbs_mouse_interval);
                        }
                    );
                }
                else{
                    _rotleft.click(function(e){
                        var width = outsidewidth - 10;
                        var left = _ulwrapdiv.scrollLeft() - width;
                        _ulwrapdiv.animate({scrollLeft: left +'px'});
                    });    
                    
                    _rotright.click(function(e){
                        var width = outsidewidth - 10;
                        var left = _ulwrapdiv.scrollLeft() + width;
                        _ulwrapdiv.animate({scrollLeft: left +'px'});
                    });
                }
            }
            
            //first and last:
            _first.click(function(e){
                    _ulwrapdiv.animate({scrollLeft: '0px'});
                    _ulwrapdiv.find('li').eq(0).click();
            });
            _last.click(function(e){
                    _ulwrapdiv.animate({scrollLeft: insidewidth +'px'});
                    _ulwrapdiv.find('li').eq(o.count - 1).click();
            });
            
            //click a page
            _ulwrapdiv.find('li').click(function(e){
                selobj.html('<a>'+selobj.find('.jPag-current').html()+'</a>'); 
                var currval = $(this).find('a').html();
                $(this).html('<span class="jPag-current">'+currval+'</span>');
                selobj = $(this);
                $.fn.applystyle(o,$(this).parent().parent().parent(),a_css,hover_css,_first,_ul,_ulwrapdiv,_divwrapright);    
                var left = (this.offsetLeft) / 2;
                var left2 = _ulwrapdiv.scrollLeft() + left;
                var tmp = left - (outsidewidth / 2);
                if(ver == 'ie7')
                    _ulwrapdiv.animate({scrollLeft: left + tmp - _first.parent().width() + 52 + 'px'});    
                else
                    _ulwrapdiv.animate({scrollLeft: left + tmp - _first.parent().width() + 'px'});    
                o.onChange(currval);    
            });
            
            var last = _ulwrapdiv.find('li').eq(o.start-1);
            last.attr('id','tmp');
            var left = document.getElementById('tmp').offsetLeft / 2;
            last.removeAttr('id');
            var tmp = left - (outsidewidth / 2);
            if(ver == 'ie7') _ulwrapdiv.animate({scrollLeft: left + tmp - _first.parent().width() + 52 + 'px'});    
            else _ulwrapdiv.animate({scrollLeft: left + tmp - _first.parent().width() + 'px'});    
        }
        
        $.fn.applystyle = function(o,obj,a_css,hover_css,_first,_ul,_ulwrapdiv,_divwrapright){
                        obj.find('a').css(a_css);
                        obj.find('span.jPag-current').css(hover_css);
                        obj.find('a').hover(
                        function(){
                            $(this).css(hover_css);
                        },
                        function(){
                            $(this).css(a_css);
                        }
                        );
                        obj.css('padding-left',_first.parent().width() + 5 +'px');
                        insidewidth = 0;
                        
                        obj.find('li').each(function(i,n){
                            if(i == (o.display-1)){
                                outsidewidth_tmp = this.offsetLeft + this.offsetWidth ;
                            }
                            insidewidth += this.offsetWidth;
                        })
                        _ul.css('width',insidewidth+'px');
        }
    })(jQuery);
  • 相关阅读:
    OpenGL纹理数据块
    MFC应用真彩色图标资源
    PictureConverter命令行图片批量转换工具
    Google Earth6.1 tree
    OpenGL Render On Window Process
    纹理滤波(Texture Filter)
    使用开源OpenCTM进行常用三维格式互导
    《搅基辞》
    访问WebDAV服务
    linux 挂载一个文件夹到另一个文件夹
  • 原文地址:https://www.cnblogs.com/binmengxue/p/7235205.html
Copyright © 2020-2023  润新知