分类分类
更新时间:2026-04-09 15:25:46作者:zhao
本文实例讲述了Javascript实现颜色rgb与16进制转换的方法。分享给大家供大家参考。具体如下:
使用方法:
Color(12,34,56);
Color("#fff")
Color("#defdcd")
实现代码:
//颜色转换
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);
}
}
//设置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);
//扩展函数的实例方法
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程序设计有所帮助。
相关
傲视神魔传手游策略游戏13.55 Mv1.0.02026-04-09
下载三国志王道天下策略游戏2.18Gv0.9.8.12026-04-09
下载风云三国手机版策略游戏213.99 M2026-04-09
下载星之海手机版角色扮演2.78Gv1.1.598772026-04-09
下载迪士尼梦幻王国经营养成79.34 Mv11.5.0h2026-04-09
下载TapAim动作射击97.92 Mv2.0.12026-04-09
下载肖邦大冒险九游版策略游戏133.64 Mv1.02026-04-09
下载放松时光与你共享Lo-Fi故事休闲益智951.66 Mv1.4.62026-04-09
下载羽毛球对决体育竞技175.66 Mv4.12026-04-09
下载假面骑士泽兹变身模拟器休闲益智51.91 Mv1.00.302026-04-09
下载餐车厨师烹饪游戏苹果版模拟游戏327.2 Mv8.682026-04-09
下载最终幻想7永恒危机ios版角色游戏1.5Gv3.6.02026-04-09
下载










