• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

Javascript 颜色转换rgb与16进制互转

JavaScript 水墨上仙 1926次浏览

颜色转换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 颜色转换rgb与16进制互转
喜欢 (0)
加载中……