国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

Javascript實(shí)現(xiàn)顏色rgb與16進(jìn)制轉(zhuǎn)換的方法

2019-11-20 12:38:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(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);  }});

希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宾川县| 秦安县| 滦南县| 繁昌县| 五指山市| 临沭县| 康马县| 赤水市| 二连浩特市| 含山县| 夏邑县| 繁昌县| 兰坪| 图木舒克市| 陇南市| 吐鲁番市| 莒南县| 乌审旗| 宁远县| 祁连县| 都兰县| 信宜市| 浦北县| 孟津县| 星座| 民权县| 贵阳市| 佛学| 蓬莱市| 松阳县| 土默特右旗| 格尔木市| 犍为县| 珠海市| 白水县| 林州市| 南华县| 南康市| 靖安县| 阳西县| 阳西县|