Javascript實(shí)現(xiàn)顏色rgb與16進(jìn)制轉(zhuǎn)換的方法
本文實(shí)例講述了Javascript實(shí)現(xiàn)顏色rgb與16進(jìn)制轉(zhuǎn)換的方法。分享給大家供大家參考。具體如下:
使用方法:
Color(12,34,56); Color("#fff") Color("#defdcd")
實(shí)現(xiàn)代碼:
//顏色轉(zhuǎn)換 var Color = function() { if (!(this instanceof Color)) { var color = new Color(); color._init.apply(color, arguments); return color; } if (arguments.length) { this._init.apply(this, arguments); } } //設(shè)置get,set方法 var methods = ["red", "green", "blue", "colorValue"]; var defineSetGetMethod = function(fn, methods) { var fnPrototype = fn.prototype; for (var i = 0; i < methods.length; i++) { var methodName = methods[i].charAt(0).toLocaleUpperCase() + methods[i].substring(1); fn.prototype['set' + methodName] = new Function("value", "this." + methods[i] + "= value;"); fn.prototype['get' + methodName] = new Function("return this." + methods[i] + ";"); fn.prototype['toString'] = new Function('return "rgb("+this.red+","+this.green+","+this.blue+")";'); } }; defineSetGetMethod(Color, methods); //擴(kuò)展函數(shù)的實(shí)例方法 var extend = function(fn, option) { var fnPrototype = fn.prototype; for (var i in option) { fnPrototype[i] = option[i]; } }; extend(Color, { _init : function() { if (arguments.length == 3) { this.red = arguments[0]; this.green = arguments[1]; this.blue = arguments[2]; this.getColorValue(); } else { var colorValue = arguments[0].replace(/^\#{1}/, ""); if (colorValue.length == 3) { colorValue = colorValue.replace(/(.)/g, '$1$1'); } this.red = parseInt('0x' + colorValue.substring(0, 2), 16); this.green = parseInt('0x' + colorValue.substring(2, 4), 16); this.blue = parseInt('0x' + colorValue.substring(4), 16); this.colorValue = "#" + colorValue; } }, getColorValue : function() { if (this.colorValue) { return this.colorValue; } var hR = this.red.toString(16); var hG = this.green.toString(16); var hB = this.blue.toString(16); return this.colorValue = "#" + (this.red < 16 ? ("0" + hR) : hR) + (this.green < 16 ? ("0" + hG) : hG) + (this.blue < 16 ? ("0" + hB) : hB); } });
希望本文所述對大家的javascript程序設(shè)計有所幫助。
- nodejs 十六進(jìn)制字符串型數(shù)據(jù)與btye型數(shù)據(jù)相互轉(zhuǎn)換
- javascript十六進(jìn)制數(shù)字和ASCII字符之間的轉(zhuǎn)換方法
- JS中的進(jìn)制轉(zhuǎn)換以及作用
- javascript實(shí)現(xiàn)的字符串與十六進(jìn)制表示字符串相互轉(zhuǎn)換方法
- JavaScript實(shí)現(xiàn)把rgb顏色轉(zhuǎn)換成16進(jìn)制顏色的方法
- JavaScript轉(zhuǎn)換二進(jìn)制編碼為ASCII碼的方法
- 使用JavaScript進(jìn)行進(jìn)制轉(zhuǎn)換將字符串轉(zhuǎn)換為十進(jìn)制
- JavaScript常用進(jìn)制轉(zhuǎn)換及位運(yùn)算實(shí)例解析
相關(guān)文章
如何在Mozilla Gecko 用Javascript加載XSL
如何在Mozilla Gecko 用Javascript加載XSL...2007-01-01原生JS實(shí)現(xiàn)非常好看的計數(shù)器
這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)非常好看的計數(shù)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10微信小程序canvas截取任意形狀的實(shí)現(xiàn)代碼
這篇文章主要介紹了微信小程序canvas截取任意形狀的實(shí)現(xiàn)代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01js判斷數(shù)組key是否存在(不用循環(huán))的簡單實(shí)例
下面小編就為大家?guī)硪黄猨s判斷數(shù)組key是否存在(不用循環(huán))的簡單實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08

微信內(nèi)置瀏覽器私有接口WeixinJSBridge介紹

如何使用Javascript正則表達(dá)式來格式化XML內(nèi)容