zoukankan      html  css  js  c++  java
  • jQuery插件——可以动态改动颜色的jQueryColor

    1、请选择代码框中所有代码后, 保存为 jquery.color.js

    [javascript]
    1. /*! 
    2.  * jQuery Color Animations v@VERSION 
    3.  * https://github.com/jquery/jquery-color 
    4.  * 
    5.  * Copyright 2012 jQuery Foundation and other contributors 
    6.  * Released under the MIT license. 
    7.  * http://jquery.org/license 
    8.  * 
    9.  * Date: @DATE 
    10.  */  
    11. (function( jQuery, undefined ) {  
    12.   
    13.     var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",  
    14.   
    15.     // plusequals test for += 100 -= 100  
    16.     rplusequals = /^([-+])=s*(d+.?d*)/,  
    17.     // a set of RE's that can match strings and generate color tuples.  
    18.     stringParsers = [{  
    19.             re: /rgba?(s*(d{1,3})s*,s*(d{1,3})s*,s*(d{1,3})s*(?:,s*(d?(?:.d+)?)s*)?)/,  
    20.             parse: function( execResult ) {  
    21.                 return [  
    22.                     execResult[ 1 ],  
    23.                     execResult[ 2 ],  
    24.                     execResult[ 3 ],  
    25.                     execResult[ 4 ]  
    26.                 ];  
    27.             }  
    28.         }, {  
    29.             re: /rgba?(s*(d+(?:.d+)?)\%s*,s*(d+(?:.d+)?)\%s*,s*(d+(?:.d+)?)\%s*(?:,s*(d?(?:.d+)?)s*)?)/,  
    30.             parse: function( execResult ) {  
    31.                 return [  
    32.                     execResult[ 1 ] * 2.55,  
    33.                     execResult[ 2 ] * 2.55,  
    34.                     execResult[ 3 ] * 2.55,  
    35.                     execResult[ 4 ]  
    36.                 ];  
    37.             }  
    38.         }, {  
    39.             // this regex ignores A-F because it's compared against an already lowercased string  
    40.             re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,  
    41.             parse: function( execResult ) {  
    42.                 return [  
    43.                     parseInt( execResult[ 1 ], 16 ),  
    44.                     parseInt( execResult[ 2 ], 16 ),  
    45.                     parseInt( execResult[ 3 ], 16 )  
    46.                 ];  
    47.             }  
    48.         }, {  
    49.             // this regex ignores A-F because it's compared against an already lowercased string  
    50.             re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,  
    51.             parse: function( execResult ) {  
    52.                 return [  
    53.                     parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ),  
    54.                     parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ),  
    55.                     parseInt( execResult[ 3 ] + execResult[ 3 ], 16 )  
    56.                 ];  
    57.             }  
    58.         }, {  
    59.             re: /hsla?(s*(d+(?:.d+)?)s*,s*(d+(?:.d+)?)\%s*,s*(d+(?:.d+)?)\%s*(?:,s*(d?(?:.d+)?)s*)?)/,  
    60.             space: "hsla",  
    61.             parse: function( execResult ) {  
    62.                 return [  
    63.                     execResult[ 1 ],  
    64.                     execResult[ 2 ] / 100,  
    65.                     execResult[ 3 ] / 100,  
    66.                     execResult[ 4 ]  
    67.                 ];  
    68.             }  
    69.         }],  
    70.   
    71.     // jQuery.Color( )  
    72.     color = jQuery.Color = function( color, green, blue, alpha ) {  
    73.         return new jQuery.Color.fn.parse( color, green, blue, alpha );  
    74.     },  
    75.     spaces = {  
    76.         rgba: {  
    77.             props: {  
    78.                 red: {  
    79.                     idx: 0,  
    80.                     type: "byte"  
    81.                 },  
    82.                 green: {  
    83.                     idx: 1,  
    84.                     type: "byte"  
    85.                 },  
    86.                 blue: {  
    87.                     idx: 2,  
    88.                     type: "byte"  
    89.                 }  
    90.             }  
    91.         },  
    92.   
    93.         hsla: {  
    94.             props: {  
    95.                 hue: {  
    96.                     idx: 0,  
    97.                     type: "degrees"  
    98.                 },  
    99.                 saturation: {  
    100.                     idx: 1,  
    101.                     type: "percent"  
    102.                 },  
    103.                 lightness: {  
    104.                     idx: 2,  
    105.                     type: "percent"  
    106.                 }  
    107.             }  
    108.         }  
    109.     },  
    110.     propTypes = {  
    111.         "byte": {  
    112.             floor: true,  
    113.             max: 255  
    114.         },  
    115.         "percent": {  
    116.             max: 1  
    117.         },  
    118.         "degrees": {  
    119.             mod: 360,  
    120.             floor: true  
    121.         }  
    122.     },  
    123.     support = color.support = {},  
    124.   
    125.     // element for support tests  
    126.     supportElem = jQuery( "<p>" )[ 0 ],  
    127.   
    128.     // colors = jQuery.Color.names  
    129.     colors,  
    130.   
    131.     // local aliases of functions called often  
    132.     each = jQuery.each;  
    133.   
    134. // determine rgba support immediately  
    135. supportElem.style.cssText = "background-color:rgba(1,1,1,.5)";  
    136. support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1;  
    137.   
    138. // define cache name and alpha properties  
    139. // for rgba and hsla spaces  
    140. each( spaces, function( spaceName, space ) {  
    141.     space.cache = "_" + spaceName;  
    142.     space.props.alpha = {  
    143.         idx: 3,  
    144.         type: "percent",  
    145.         def: 1  
    146.     };  
    147. });  
    148.   
    149. function clamp( value, prop, allowEmpty ) {  
    150.     var type = propTypes[ prop.type ] || {};  
    151.   
    152.     if ( value == null ) {  
    153.         return (allowEmpty || !prop.def) ? null : prop.def;  
    154.     }  
    155.   
    156.     // ~~ is an short way of doing floor for positive numbers  
    157.     value = type.floor ? ~~value : parseFloat( value );  
    158.   
    159.     // IE will pass in empty strings as value for alpha,  
    160.     // which will hit this case  
    161.     if ( isNaN( value ) ) {  
    162.         return prop.def;  
    163.     }  
    164.   
    165.     if ( type.mod ) {  
    166.         // we add mod before modding to make sure that negatives values  
    167.         // get converted properly: -10 -> 350  
    168.         return (value + type.mod) % type.mod;  
    169.     }  
    170.   
    171.     // for now all property types without mod have min and max  
    172.     return 0 > value ? 0 : type.max < value ? type.max : value;  
    173. }  
    174.   
    175. function stringParse( string ) {  
    176.     var inst = color(),  
    177.         rgba = inst._rgba = [];  
    178.   
    179.     string = string.toLowerCase();  
    180.   
    181.     each( stringParsers, function( i, parser ) {  
    182.         var parsed,  
    183.             match = parser.re.exec( string ),  
    184.             values = match && parser.parse( match ),  
    185.             spaceName = parser.space || "rgba";  
    186.   
    187.         if ( values ) {  
    188.             parsed = inst[ spaceName ]( values );  
    189.   
    190.             // if this was an rgba parse the assignment might happen twice  
    191.             // oh well....  
    192.             inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ];  
    193.             rgba = inst._rgba = parsed._rgba;  
    194.   
    195.             // exit each( stringParsers ) here because we matched  
    196.             return false;  
    197.         }  
    198.     });  
    199.   
    200.     // Found a stringParser that handled it  
    201.     if ( rgba.length ) {  
    202.   
    203.         // if this came from a parsed string, force "transparent" when alpha is 0  
    204.         // chrome, (and maybe others) return "transparent" as rgba(0,0,0,0)  
    205.         if ( rgba.join() === "0,0,0,0" ) {  
    206.             jQuery.extend( rgba, colors.transparent );  
    207.         }  
    208.         return inst;  
    209.     }  
    210.   
    211.     // named colors  
    212.     return colors[ string ];  
    213. }  
    214.   
    215. color.fn = jQuery.extend( color.prototype, {  
    216.     parse: function( red, green, blue, alpha ) {  
    217.         if ( red === undefined ) {  
    218.             this._rgba = [ nullnullnullnull ];  
    219.             return this;  
    220.         }  
    221.         if ( red.jquery || red.nodeType ) {  
    222.             red = jQuery( red ).css( green );  
    223.             green = undefined;  
    224.         }  
    225.   
    226.         var inst = this,  
    227.             type = jQuery.type( red ),  
    228.             rgba = this._rgba = [];  
    229.   
    230.         // more than 1 argument specified - assume ( red, green, blue, alpha )  
    231.         if ( green !== undefined ) {  
    232.             red = [ red, green, blue, alpha ];  
    233.             type = "array";  
    234.         }  
    235.   
    236.         if ( type === "string" ) {  
    237.             return this.parse( stringParse( red ) || colors._default );  
    238.         }  
    239.   
    240.         if ( type === "array" ) {  
    241.             each( spaces.rgba.props, function( key, prop ) {  
    242.                 rgba[ prop.idx ] = clamp( red[ prop.idx ], prop );  
    243.             });  
    244.             return this;  
    245.         }  
    246.   
    247.         if ( type === "object" ) {  
    248.             if ( red instanceof color ) {  
    249.                 each( spaces, function( spaceName, space ) {  
    250.                     if ( red[ space.cache ] ) {  
    251.                         inst[ space.cache ] = red[ space.cache ].slice();  
    252.                     }  
    253.                 });  
    254.             } else {  
    255.                 each( spaces, function( spaceName, space ) {  
    256.                     var cache = space.cache;  
    257.                     each( space.props, function( key, prop ) {  
    258.   
    259.                         // if the cache doesn't exist, and we know how to convert  
    260.                         if ( !inst[ cache ] && space.to ) {  
    261.   
    262.                             // if the value was null, we don't need to copy it  
    263.                             // if the key was alpha, we don't need to copy it either  
    264.                             if ( key === "alpha" || red[ key ] == null ) {  
    265.                                 return;  
    266.                             }  
    267.                             inst[ cache ] = space.to( inst._rgba );  
    268.                         }  
    269.   
    270.                         // this is the only case where we allow nulls for ALL properties.  
    271.                         // call clamp with alwaysAllowEmpty  
    272.                         inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true );  
    273.                     });  
    274.   
    275.                     // everything defined but alpha?  
    276.                     if ( inst[ cache ] && jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) {  
    277.                         // use the default of 1  
    278.                         inst[ cache ][ 3 ] = 1;  
    279.                         if ( space.from ) {  
    280.                             inst._rgba = space.from( inst[ cache ] );  
    281.                         }  
    282.                     }  
    283.                 });  
    284.             }  
    285.             return this;  
    286.         }  
    287.     },  
    288.     is: function( compare ) {  
    289.         var is = color( compare ),  
    290.             same = true,  
    291.             inst = this;  
    292.   
    293.         each( spaces, function( _, space ) {  
    294.             var localCache,  
    295.                 isCache = is[ space.cache ];  
    296.             if (isCache) {  
    297.                 localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || [];  
    298.                 each( space.props, function( _, prop ) {  
    299.                     if ( isCache[ prop.idx ] != null ) {  
    300.                         same = ( isCache[ prop.idx ] === localCache[ prop.idx ] );  
    301.                         return same;  
    302.                     }  
    303.                 });  
    304.             }  
    305.             return same;  
    306.         });  
    307.         return same;  
    308.     },  
    309.     _space: function() {  
    310.         var used = [],  
    311.             inst = this;  
    312.         each( spaces, function( spaceName, space ) {  
    313.             if ( inst[ space.cache ] ) {  
    314.                 used.push( spaceName );  
    315.             }  
    316.         });  
    317.         return used.pop();  
    318.     },  
    319.     transition: function( other, distance ) {  
    320.         var end = color( other ),  
    321.             spaceName = end._space(),  
    322.             space = spaces[ spaceName ],  
    323.             startColor = this.alpha() === 0 ? color( "transparent" ) : this,  
    324.             start = startColor[ space.cache ] || space.to( startColor._rgba ),  
    325.             result = start.slice();  
    326.   
    327.         end = end[ space.cache ];  
    328.         each( space.props, function( key, prop ) {  
    329.             var index = prop.idx,  
    330.                 startValue = start[ index ],  
    331.                 endValue = end[ index ],  
    332.                 type = propTypes[ prop.type ] || {};  
    333.   
    334.             // if null, don't override start value  
    335.             if ( endValue === null ) {  
    336.                 return;  
    337.             }  
    338.             // if null - use end  
    339.             if ( startValue === null ) {  
    340.                 result[ index ] = endValue;  
    341.             } else {  
    342.                 if ( type.mod ) {  
    343.                     if ( endValue - startValue > type.mod / 2 ) {  
    344.                         startValue += type.mod;  
    345.                     } else if ( startValue - endValue > type.mod / 2 ) {  
    346.                         startValue -= type.mod;  
    347.                     }  
    348.                 }  
    349.                 result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop );  
    350.             }  
    351.         });  
    352.         return this[ spaceName ]( result );  
    353.     },  
    354.     blend: function( opaque ) {  
    355.         // if we are already opaque - return ourself  
    356.         if ( this._rgba[ 3 ] === 1 ) {  
    357.             return this;  
    358.         }  
    359.   
    360.         var rgb = this._rgba.slice(),  
    361.             a = rgb.pop(),  
    362.             blend = color( opaque )._rgba;  
    363.   
    364.         return color( jQuery.map( rgb, function( v, i ) {  
    365.             return ( 1 - a ) * blend[ i ] + a * v;  
    366.         }));  
    367.     },  
    368.     toRgbaString: function() {  
    369.         var prefix = "rgba(",  
    370.             rgba = jQuery.map( this._rgba, function( v, i ) {  
    371.                 return v == null ? ( i > 2 ? 1 : 0 ) : v;  
    372.             });  
    373.   
    374.         if ( rgba[ 3 ] === 1 ) {  
    375.             rgba.pop();  
    376.             prefix = "rgb(";  
    377.         }  
    378.   
    379.         return prefix + rgba.join() + ")";  
    380.     },  
    381.     toHslaString: function() {  
    382.         var prefix = "hsla(",  
    383.             hsla = jQuery.map( this.hsla(), function( v, i ) {  
    384.                 if ( v == null ) {  
    385.                     v = i > 2 ? 1 : 0;  
    386.                 }  
    387.   
    388.                 // catch 1 and 2  
    389.                 if ( i && i < 3 ) {  
    390.                     v = Math.round( v * 100 ) + "%";  
    391.                 }  
    392.                 return v;  
    393.             });  
    394.   
    395.         if ( hsla[ 3 ] === 1 ) {  
    396.             hsla.pop();  
    397.             prefix = "hsl(";  
    398.         }  
    399.         return prefix + hsla.join() + ")";  
    400.     },  
    401.     toHexString: function( includeAlpha ) {  
    402.         var rgba = this._rgba.slice(),  
    403.             alpha = rgba.pop();  
    404.   
    405.         if ( includeAlpha ) {  
    406.             rgba.push( ~~( alpha * 255 ) );  
    407.         }  
    408.   
    409.         return "#" + jQuery.map( rgba, function( v ) {  
    410.   
    411.             // default to 0 when nulls exist  
    412.             v = ( v || 0 ).toString( 16 );  
    413.             return v.length === 1 ? "0" + v : v;  
    414.         }).join("");  
    415.     },  
    416.     toString: function() {  
    417.         return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString();  
    418.     }  
    419. });  
    420. color.fn.parse.prototype = color.fn;  
    421.   
    422. // hsla conversions adapted from:  
    423. // https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021  
    424.   
    425. function hue2rgb( p, q, h ) {  
    426.     h = ( h + 1 ) % 1;  
    427.     if ( h * 6 < 1 ) {  
    428.         return p + (q - p) * h * 6;  
    429.     }  
    430.     if ( h * 2 < 1) {  
    431.         return q;  
    432.     }  
    433.     if ( h * 3 < 2 ) {  
    434.         return p + (q - p) * ((2/3) - h) * 6;  
    435.     }  
    436.     return p;  
    437. }  
    438.   
    439. spaces.hsla.to = function ( rgba ) {  
    440.     if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) {  
    441.         return [ nullnullnull, rgba[ 3 ] ];  
    442.     }  
    443.     var r = rgba[ 0 ] / 255,  
    444.         g = rgba[ 1 ] / 255,  
    445.         b = rgba[ 2 ] / 255,  
    446.         a = rgba[ 3 ],  
    447.         max = Math.max( r, g, b ),  
    448.         min = Math.min( r, g, b ),  
    449.         diff = max - min,  
    450.         add = max + min,  
    451.         l = add * 0.5,  
    452.         h, s;  
    453.   
    454.     if ( min === max ) {  
    455.         h = 0;  
    456.     } else if ( r === max ) {  
    457.         h = ( 60 * ( g - b ) / diff ) + 360;  
    458.     } else if ( g === max ) {  
    459.         h = ( 60 * ( b - r ) / diff ) + 120;  
    460.     } else {  
    461.         h = ( 60 * ( r - g ) / diff ) + 240;  
    462.     }  
    463.   
    464.     // chroma (diff) == 0 means greyscale which, by definition, saturation = 0%  
    465.     // otherwise, saturation is based on the ratio of chroma (diff) to lightness (add)  
    466.     if ( diff === 0 ) {  
    467.         s = 0;  
    468.     } else if ( l <= 0.5 ) {  
    469.         s = diff / add;  
    470.     } else {  
    471.         s = diff / ( 2 - add );  
    472.     }  
    473.     return [ Math.round(h) % 360, s, l, a == null ? 1 : a ];  
    474. };  
    475.   
    476. spaces.hsla.from = function ( hsla ) {  
    477.     if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) {  
    478.         return [ nullnullnull, hsla[ 3 ] ];  
    479.     }  
    480.     var h = hsla[ 0 ] / 360,  
    481.         s = hsla[ 1 ],  
    482.         l = hsla[ 2 ],  
    483.         a = hsla[ 3 ],  
    484.         q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s,  
    485.         p = 2 * l - q;  
    486.   
    487.     return [  
    488.         Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ),  
    489.         Math.round( hue2rgb( p, q, h ) * 255 ),  
    490.         Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ),  
    491.         a  
    492.     ];  
    493. };  
    494.   
    495.   
    496. each( spaces, function( spaceName, space ) {  
    497.     var props = space.props,  
    498.         cache = space.cache,  
    499.         to = space.to,  
    500.         from = space.from;  
    501.   
    502.     // makes rgba() and hsla()  
    503.     color.fn[ spaceName ] = function( value ) {  
    504.   
    505.         // generate a cache for this space if it doesn't exist  
    506.         if ( to && !this[ cache ] ) {  
    507.             this[ cache ] = to( this._rgba );  
    508.         }  
    509.         if ( value === undefined ) {  
    510.             return this[ cache ].slice();  
    511.         }  
    512.   
    513.         var ret,  
    514.             type = jQuery.type( value ),  
    515.             arr = ( type === "array" || type === "object" ) ? value : arguments,  
    516.             local = this[ cache ].slice();  
    517.   
    518.         each( props, function( key, prop ) {  
    519.             var val = arr[ type === "object" ? key : prop.idx ];  
    520.             if ( val == null ) {  
    521.                 val = local[ prop.idx ];  
    522.             }  
    523.             local[ prop.idx ] = clamp( val, prop );  
    524.         });  
    525.   
    526.         if ( from ) {  
    527.             ret = color( from( local ) );  
    528.             ret[ cache ] = local;  
    529.             return ret;  
    530.         } else {  
    531.             return color( local );  
    532.         }  
    533.     };  
    534.   
    535.     // makes red() green() blue() alpha() hue() saturation() lightness()  
    536.     each( props, function( key, prop ) {  
    537.         // alpha is included in more than one space  
    538.         if ( color.fn[ key ] ) {  
    539.             return;  
    540.         }  
    541.         color.fn[ key ] = function( value ) {  
    542.             var vtype = jQuery.type( value ),  
    543.                 fn = ( key === "alpha" ? ( this._hsla ? "hsla" : "rgba" ) : spaceName ),  
    544.                 local = this[ fn ](),  
    545.                 cur = local[ prop.idx ],  
    546.                 match;  
    547.   
    548.             if ( vtype === "undefined" ) {  
    549.                 return cur;  
    550.             }  
    551.   
    552.             if ( vtype === "function" ) {  
    553.                 value = value.call( this, cur );  
    554.                 vtype = jQuery.type( value );  
    555.             }  
    556.             if ( value == null && prop.empty ) {  
    557.                 return this;  
    558.             }  
    559.             if ( vtype === "string" ) {  
    560.                 match = rplusequals.exec( value );  
    561.                 if ( match ) {  
    562.                     value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 );  
    563.                 }  
    564.             }  
    565.             local[ prop.idx ] = value;  
    566.             return this[ fn ]( local );  
    567.         };  
    568.     });  
    569. });  
    570.   
    571. // add cssHook and .fx.step function for each named hook.  
    572. // accept a space separated string of properties  
    573. color.hook = function( hook ) {  
    574.     var hooks = hook.split( " " );  
    575.     each( hooks, function( i, hook ) {  
    576.         jQuery.cssHooks[ hook ] = {  
    577.             set: function( elem, value ) {  
    578.                 var parsed, curElem,  
    579.                     backgroundColor = "";  
    580.   
    581.                 if ( jQuery.type( value ) !== "string" || ( parsed = stringParse( value ) ) ) {  
    582.                     value = color( parsed || value );  
    583.                     if ( !support.rgba && value._rgba[ 3 ] !== 1 ) {  
    584.                         curElem = hook === "backgroundColor" ? elem.parentNode : elem;  
    585.                         while (  
    586.                             (backgroundColor === "" || backgroundColor === "transparent") &&  
    587.                             curElem && curElem.style  
    588.                         ) {  
    589.                             try {  
    590.                                 backgroundColor = jQuery.css( curElem, "backgroundColor" );  
    591.                                 curElem = curElem.parentNode;  
    592.                             } catch ( e ) {  
    593.                             }  
    594.                         }  
    595.   
    596.                         value = value.blend( backgroundColor && backgroundColor !== "transparent" ?  
    597.                             backgroundColor :  
    598.                             "_default" );  
    599.                     }  
    600.   
    601.                     value = value.toRgbaString();  
    602.                 }  
    603.                 try {  
    604.                     elem.style[ hook ] = value;  
    605.                 } catch( e ) {  
    606.                     // wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit'  
    607.                 }  
    608.             }  
    609.         };  
    610.         jQuery.fx.step[ hook ] = function( fx ) {  
    611.             if ( !fx.colorInit ) {  
    612.                 fx.start = color( fx.elem, hook );  
    613.                 fx.end = color( fx.end );  
    614.                 fx.colorInit = true;  
    615.             }  
    616.             jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) );  
    617.         };  
    618.     });  
    619.   
    620. };  
    621.   
    622. color.hook( stepHooks );  
    623.   
    624. jQuery.cssHooks.borderColor = {  
    625.     expand: function( value ) {  
    626.         var expanded = {};  
    627.   
    628.         each( [ "Top""Right""Bottom""Left" ], function( i, part ) {  
    629.             expanded[ "border" + part + "Color" ] = value;  
    630.         });  
    631.         return expanded;  
    632.     }  
    633. };  
    634.   
    635. // Basic color names only.  
    636. // Usage of any of the other color names requires adding yourself or including  
    637. // jquery.color.svg-names.js.  
    638. colors = jQuery.Color.names = {  
    639.     // 4.1. Basic color keywords  
    640.     aqua: "#00ffff",  
    641.     black: "#000000",  
    642.     blue: "#0000ff",  
    643.     fuchsia: "#ff00ff",  
    644.     gray: "#808080",  
    645.     green: "#008000",  
    646.     lime: "#00ff00",  
    647.     maroon: "#800000",  
    648.     navy: "#000080",  
    649.     olive: "#808000",  
    650.     purple: "#800080",  
    651.     red: "#ff0000",  
    652.     silver: "#c0c0c0",  
    653.     teal: "#008080",  
    654.     white: "#ffffff",  
    655.     yellow: "#ffff00",  
    656.   
    657.     // 4.2.3. "transparent" color keyword  
    658.     transparent: [ nullnullnull, 0 ],  
    659.   
    660.     _default: "#ffffff"  
    661. };  
    662.   
    663. })( jQuery );  


    2、调用实例:

    [javascript]
      1. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js" type="text/javascript"></script>  
      2. <script type="text/javascript" src="jquery.color.js"></script>  
      3. <div id="test" style="background-color: #00ffff">Test string</div>  
      4. <script type="text/javascript">  
      5. var $div = $("#test").animate({"background-color"'transparent'}, 1400);  
      6. </script> 
  • 相关阅读:
    笔试小题
    java泛型
    HTML 字符实体 &lt; &gt: &amp;等
    HttpClient Get/Post方式调用Http接口
    Webservice简介
    Mybtis框架总结(一)
    java 获取当月第一天和最后一天 获取前一个月第一天和最后一天
    java程序员需要掌握些什么知识
    Float和double丢失精度问题及解决方案
    ViewController的viewWillLayoutSubviews作用
  • 原文地址:https://www.cnblogs.com/interdrp/p/3670809.html
Copyright © 2011-2022 走看看