Changeset 31516 in spip-zone


Ignore:
Timestamp:
Sep 12, 2009, 7:08:05 AM (10 years ago)
Author:
cousin-alain@…
Message:

version 2.01 (08-SEP-2009)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _squelettes_/sarkaspip3_arrondis/scripts/jquery.corner.js

    r31377 r31516  
    22 * jQuery corner plugin: simple corner rounding
    33 * Examples and documentation at: http://jquery.malsup.com/corner/
    4  * version 2.00 (04-SEP-2009)
     4 * version 2.01 (08-SEP-2009)
    55 * Dual licensed under the MIT and GPL licenses:
    66 * http://www.opensource.org/licenses/mit-license.php
     
    2525var webkit = $.browser.safari && $.browser.version >= 3;
    2626
    27 var expr = !moz && !webkit && (function() {
    28         if (! $.browser.msie) return false;
     27var expr = $.browser.msie && (function() {
    2928    var div = document.createElement('div');
    3029    try { div.style.setExpression('width','0+0'); }
     
    7776};
    7877
    79 $.fn.corner = function(o) {
     78$.fn.corner = function(options) {
    8079    // in 1.3+ we can fix mistakes with the ready state
    8180        if (this.length == 0) {
     
    8382            var s = this.selector, c = this.context;
    8483            $(function() {
    85                 $(s,c).corner(o);
     84                $(s,c).corner(options);
    8685            });
    8786        }
     
    8988        }
    9089
    91     o = (o||"").toLowerCase();
    92     var keep = /keep/.test(o);                       // keep borders?
    93     var cc = ((o.match(/cc:(#[0-9a-f]+)/)||[])[1]);  // corner color
    94     var sc = ((o.match(/sc:(#[0-9a-f]+)/)||[])[1]);  // strip color
    95     var width = parseInt((o.match(/(\d+)px/)||[])[1]) || 10; // corner width
    96     var re = /round|bevel|notch|bite|cool|sharp|slide|jut|curl|tear|fray|wicked|sculpt|long|dog3|dog2|dog/;
    97     var fx = ((o.match(re)||['round'])[0]);
    98     var edges = { T:0, B:1 };
    99     var opts = {
    100         TL:  /top|tl/.test(o),       TR:  /top|tr/.test(o),
    101         BL:  /bottom|bl/.test(o),    BR:  /bottom|br/.test(o)
    102     };
    103     if ( !opts.TL && !opts.TR && !opts.BL && !opts.BR )
    104         opts = { TL:1, TR:1, BL:1, BR:1 };
    105                
    106         // support native rounding
    107         if ($.fn.corner.defaults.useNative && fx == 'round' && (moz || webkit)) {
    108                 if (opts.TL)
    109                         this.css(moz ? '-moz-border-radius-topleft' : '-webkit-border-top-left-radius', width + 'px');
    110                 if (opts.TR)
    111                         this.css(moz ? '-moz-border-radius-topright' : '-webkit-border-top-right-radius', width + 'px');
    112                 if (opts.BL)
    113                         this.css(moz ? '-moz-border-radius-bottomleft' : '-webkit-border-bottom-left-radius', width + 'px');
    114                 if (opts.BR)
    115                         this.css(moz ? '-moz-border-radius-bottomright' : '-webkit-border-bottom-right-radius', width + 'px');
    116                 return this;
    117         }
    118                
    119     var strip = document.createElement('div');
    120     strip.style.overflow = 'hidden';
    121     strip.style.height = '1px';
    122     strip.style.backgroundColor = sc || 'transparent';
    123     strip.style.borderStyle = 'solid';
     90    return this.each(function(index){
     91                var $this = $(this);
     92                var o = (options || $this.attr($.fn.corner.defaults.metaAttr) || '').toLowerCase();
     93                var keep = /keep/.test(o);                       // keep borders?
     94                var cc = ((o.match(/cc:(#[0-9a-f]+)/)||[])[1]);  // corner color
     95                var sc = ((o.match(/sc:(#[0-9a-f]+)/)||[])[1]);  // strip color
     96                var width = parseInt((o.match(/(\d+)px/)||[])[1]) || 10; // corner width
     97                var re = /round|bevel|notch|bite|cool|sharp|slide|jut|curl|tear|fray|wicked|sculpt|long|dog3|dog2|dog/;
     98                var fx = ((o.match(re)||['round'])[0]);
     99                var edges = { T:0, B:1 };
     100                var opts = {
     101                        TL:  /top|tl|left/.test(o),       TR:  /top|tr|right/.test(o),
     102                        BL:  /bottom|bl|left/.test(o),    BR:  /bottom|br|right/.test(o)
     103                };
     104                if ( !opts.TL && !opts.TR && !opts.BL && !opts.BR )
     105                        opts = { TL:1, TR:1, BL:1, BR:1 };
     106                       
     107                // support native rounding
     108                if ($.fn.corner.defaults.useNative && fx == 'round' && (moz || webkit) && !cc && !sc) {
     109                        if (opts.TL)
     110                                $this.css(moz ? '-moz-border-radius-topleft' : '-webkit-border-top-left-radius', width + 'px');
     111                        if (opts.TR)
     112                                $this.css(moz ? '-moz-border-radius-topright' : '-webkit-border-top-right-radius', width + 'px');
     113                        if (opts.BL)
     114                                $this.css(moz ? '-moz-border-radius-bottomleft' : '-webkit-border-bottom-left-radius', width + 'px');
     115                        if (opts.BR)
     116                                $this.css(moz ? '-moz-border-radius-bottomright' : '-webkit-border-bottom-right-radius', width + 'px');
     117                        return;
     118                }
     119                       
     120                var strip = document.createElement('div');
     121                strip.style.overflow = 'hidden';
     122                strip.style.height = '1px';
     123                strip.style.backgroundColor = sc || 'transparent';
     124                strip.style.borderStyle = 'solid';
    124125       
    125     return this.each(function(index){
    126126        var pad = {
    127127            T: parseInt($.css(this,'paddingTop'))||0,     R: parseInt($.css(this,'paddingRight'))||0,
     
    193193};
    194194
    195 // allow external control over whether or not native rounding is used
     195// expose options
    196196$.fn.corner.defaults = {
    197         useNative: true
     197        useNative: true, // true if plugin should attempt to use native browser support for border radius rounding
     198        metaAttr:  'data-corner' // name of meta attribute to use for options
    198199};
    199200   
Note: See TracChangeset for help on using the changeset viewer.