⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 color.js

📁 Ajax下日志框架
💻 JS
📖 第 1 页 / 共 2 页
字号:
/***MochiKit.Color 1.3.1See <http://mochikit.com/> for documentation, downloads, license, etc.(c) 2005 Bob Ippolito and others.  All rights Reserved.***/if (typeof(dojo) != 'undefined') {    dojo.provide('MochiKit.Color');    dojo.require('MochiKit.Base');}if (typeof(JSAN) != 'undefined') {    JSAN.use("MochiKit.Base", []);}try {    if (typeof(MochiKit.Base) == 'undefined') {        throw "";    }} catch (e) {    throw "MochiKit.Color depends on MochiKit.Base";}if (typeof(MochiKit.Color) == "undefined") {    MochiKit.Color = {};}MochiKit.Color.NAME = "MochiKit.Color";MochiKit.Color.VERSION = "1.3.1";MochiKit.Color.__repr__ = function () {    return "[" + this.NAME + " " + this.VERSION + "]";};MochiKit.Color.toString = function () {    return this.__repr__();};MochiKit.Color.Color = function (red, green, blue, alpha) {    if (typeof(alpha) == 'undefined' || alpha === null) {        alpha = 1.0;    }    this.rgb = {        r: red,        g: green,        b: blue,        a: alpha    };};// Prototype methodsMochiKit.Color.Color.prototype = {    __class__: MochiKit.Color.Color,    colorWithAlpha: function (alpha) {        var rgb = this.rgb;        var m = MochiKit.Color;        return m.Color.fromRGB(rgb.r, rgb.g, rgb.b, alpha);    },    colorWithHue: function (hue) {        // get an HSL model, and set the new hue...        var hsl = this.asHSL();        hsl.h = hue;        var m = MochiKit.Color;        // convert back to RGB...        return m.Color.fromHSL(hsl);    },    colorWithSaturation: function (saturation) {        // get an HSL model, and set the new hue...        var hsl = this.asHSL();        hsl.s = saturation;        var m = MochiKit.Color;        // convert back to RGB...        return m.Color.fromHSL(hsl);    },    colorWithLightness: function (lightness) {        // get an HSL model, and set the new hue...        var hsl = this.asHSL();        hsl.l = lightness;        var m = MochiKit.Color;        // convert back to RGB...        return m.Color.fromHSL(hsl);    },    darkerColorWithLevel: function (level) {        var hsl  = this.asHSL();        hsl.l = Math.max(hsl.l - level, 0);        var m = MochiKit.Color;        return m.Color.fromHSL(hsl);    },    lighterColorWithLevel: function (level) {        var hsl  = this.asHSL();        hsl.l = Math.min(hsl.l + level, 1);        var m = MochiKit.Color;        return m.Color.fromHSL(hsl);    },    blendedColor: function (other, /* optional */ fraction) {        if (typeof(fraction) == 'undefined' || fraction === null) {            fraction = 0.5;        }        var sf = 1.0 - fraction;        var s = this.rgb;        var d = other.rgb;        var df = fraction;        return MochiKit.Color.Color.fromRGB(            (s.r * sf) + (d.r * df),            (s.g * sf) + (d.g * df),            (s.b * sf) + (d.b * df),            (s.a * sf) + (d.a * df)        );    },    compareRGB: function (other) {        var a = this.asRGB();        var b = other.asRGB();        return MochiKit.Base.compare(            [a.r, a.g, a.b, a.a],            [b.r, b.g, b.b, b.a]        );    },            isLight: function () {        return this.asHSL().b > 0.5;    },    isDark: function () {        return (!this.isLight());    },    toHSLString: function () {        var c = this.asHSL();        var ccc = MochiKit.Color.clampColorComponent;        var rval = this._hslString;        if (!rval) {            var mid = (                ccc(c.h, 360).toFixed(0)                + "," + ccc(c.s, 100).toPrecision(4) + "%"                 + "," + ccc(c.l, 100).toPrecision(4) + "%"            );            var a = c.a;            if (a >= 1) {                a = 1;                rval = "hsl(" + mid + ")";            } else {                if (a <= 0) {                    a = 0;                }                rval = "hsla(" + mid + "," + a + ")";            }            this._hslString = rval;        }        return rval;    },    toRGBString: function () {        var c = this.rgb;        var ccc = MochiKit.Color.clampColorComponent;        var rval = this._rgbString;        if (!rval) {            var mid = (                ccc(c.r, 255).toFixed(0)                + "," + ccc(c.g, 255).toFixed(0)                + "," + ccc(c.b, 255).toFixed(0)            );            if (c.a != 1) {                rval = "rgba(" + mid + "," + c.a + ")";            } else {                rval = "rgb(" + mid + ")";            }            this._rgbString = rval;        }        return rval;    },    asRGB: function () {        return MochiKit.Base.clone(this.rgb);    },    toHexString: function () {        var m = MochiKit.Color;        var c = this.rgb;        var ccc = MochiKit.Color.clampColorComponent;        var rval = this._hexString;        if (!rval) {            rval = ("#" +                 m.toColorPart(ccc(c.r, 255)) +                m.toColorPart(ccc(c.g, 255)) +                m.toColorPart(ccc(c.b, 255))            );            this._hexString = rval;        }        return rval;    },    asHSV: function () {        var hsv = this.hsv;        var c = this.rgb;        if (typeof(hsv) == 'undefined' || hsv === null) {            hsv = MochiKit.Color.rgbToHSV(this.rgb);            this.hsv = hsv;        }        return MochiKit.Base.clone(hsv);    },    asHSL: function () {        var hsl = this.hsl;        var c = this.rgb;        if (typeof(hsl) == 'undefined' || hsl === null) {            hsl = MochiKit.Color.rgbToHSL(this.rgb);            this.hsl = hsl;        }        return MochiKit.Base.clone(hsl);    },    toString: function () {        return this.toRGBString();    },    repr: function () {        var c = this.rgb;        var col = [c.r, c.g, c.b, c.a];        return this.__class__.NAME + "(" + col.join(", ") + ")";    }};// Constructor methodsMochiKit.Base.update(MochiKit.Color.Color, {    fromRGB: function (red, green, blue, alpha) {        // designated initializer        var Color = MochiKit.Color.Color;        if (arguments.length == 1) {            var rgb = red;            red = rgb.r;            green = rgb.g;            blue = rgb.b;            if (typeof(rgb.a) == 'undefined') {                alpha = undefined;            } else {                alpha = rgb.a;            }        }        return new Color(red, green, blue, alpha);    },    fromHSL: function (hue, saturation, lightness, alpha) {        var m = MochiKit.Color;        return m.Color.fromRGB(m.hslToRGB.apply(m, arguments));    },    fromHSV: function (hue, saturation, value, alpha) {        var m = MochiKit.Color;        return m.Color.fromRGB(m.hsvToRGB.apply(m, arguments));    },    fromName: function (name) {        var Color = MochiKit.Color.Color;        // Opera 9 seems to "quote" named colors(?!)        if (name.charAt(0) == '"') {            name = name.substr(1, name.length - 2);        }        var htmlColor = Color._namedColors[name.toLowerCase()];        if (typeof(htmlColor) == 'string') {            return Color.fromHexString(htmlColor);        } else if (name == "transparent") {            return Color.transparentColor();        }        return null;    },    fromString: function (colorString) {        var self = MochiKit.Color.Color;        var three = colorString.substr(0, 3);        if (three == "rgb") {            return self.fromRGBString(colorString);        } else if (three == "hsl") {            return self.fromHSLString(colorString);        } else if (colorString.charAt(0) == "#") {            return self.fromHexString(colorString);        }        return self.fromName(colorString);    },    fromHexString: function (hexCode) {        if (hexCode.charAt(0) == '#') {            hexCode = hexCode.substring(1);        }        var components = [];        var i, hex;        if (hexCode.length == 3) {            for (i = 0; i < 3; i++) {                hex = hexCode.substr(i, 1);                components.push(parseInt(hex + hex, 16) / 255.0);            }        } else {            for (i = 0; i < 6; i += 2) {                hex = hexCode.substr(i, 2);                components.push(parseInt(hex, 16) / 255.0);            }        }        var Color = MochiKit.Color.Color;        return Color.fromRGB.apply(Color, components);    },            _fromColorString: function (pre, method, scales, colorCode) {        // parses either HSL or RGB        if (colorCode.indexOf(pre) === 0) {            colorCode = colorCode.substring(colorCode.indexOf("(", 3) + 1, colorCode.length - 1);        }         var colorChunks = colorCode.split(/\s*,\s*/);        var colorFloats = [];        for (var i = 0; i < colorChunks.length; i++) {            var c = colorChunks[i];            var val;            var three = c.substring(c.length - 3);            if (c.charAt(c.length - 1) == '%') {                val = 0.01 * parseFloat(c.substring(0, c.length - 1));            } else if (three == "deg") {                val = parseFloat(c) / 360.0;            } else if (three == "rad") {                val = parseFloat(c) / (Math.PI * 2);            } else {                val = scales[i] * parseFloat(c);            }            colorFloats.push(val);        }        return this[method].apply(this, colorFloats);    },        fromComputedStyle: function (elem, style, mozillaEquivalentCSS) {        var d = MochiKit.DOM;        var cls = MochiKit.Color.Color;        for (elem = d.getElement(elem); elem; elem = elem.parentNode) {            var actualColor = d.computedStyle.apply(d, arguments);            if (!actualColor) {                continue;            }            var color = cls.fromString(actualColor);            if (!color) {                break;            }            if (color.asRGB().a > 0) {                return color;            }        }        return null;    },    fromBackground: function (elem) {        var cls = MochiKit.Color.Color;        return cls.fromComputedStyle(            elem, "backgroundColor", "background-color") || cls.whiteColor();    },    fromText: function (elem) {        var cls = MochiKit.Color.Color;        return cls.fromComputedStyle(            elem, "color", "color") || cls.blackColor();    },    namedColors: function () {        return MochiKit.Base.clone(MochiKit.Color.Color._namedColors);    }});// Module level functionsMochiKit.Base.update(MochiKit.Color, {    clampColorComponent: function (v, scale) {        v *= scale;        if (v < 0) {            return 0;        } else if (v > scale) {            return scale;        } else {            return v;        }    },    _hslValue: function (n1, n2, hue) {        if (hue > 6.0) {            hue -= 6.0;        } else if (hue < 0.0) {            hue += 6.0;        }        var val;        if (hue < 1.0) {            val = n1 + (n2 - n1) * hue;        } else if (hue < 3.0) {            val = n2;        } else if (hue < 4.0) {            val = n1 + (n2 - n1) * (4.0 - hue);        } else {            val = n1;        }        return val;    },            hsvToRGB: function (hue, saturation, value, alpha) {        if (arguments.length == 1) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -