jquery #color到rgba?
是否可以将#ff0000
这样的颜色转换为rgb?
所以将#ff0000
转换为rgb(255,0,0);
我很确定这是可能的,我只是不知道如何。 任何见解都会很棒!
你可以使用:
var s = "#ff0000"; var patt = /^#([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})$/; var matches = patt.exec(s); var rgb = "rgb("+parseInt(matches[1], 16)+","+parseInt(matches[2], 16)+","+parseInt(matches[3], 16)+");"; alert(rgb);
.css("background-color")
将返回rgb http://api.jquery.com/css/
这里是小提琴http://jsfiddle.net/3nigma/msRqv/1/
纯粹使用你拥有的字符串,你可以这样:
var color = '#FF5500';
首先,提取每种颜色的两个hex数字:
var redHex = color.substring(1, 3); var greenHex = color.substring(3, 5); var blueHex = color.substring(5, 7);
然后,将它们转换为十进制:
var redDec = parseInt(redHex, 16); var greenDec = parseInt(greenHex, 16); var blueDec = parseInt(blueHex, 16);
最后,得到你的rgb()
字符串作为结果:
var colorRgb = 'rgb(' + redDec + ', ' + greenDec + ', ' + blueDec + ')'; console.log( colorRgb );
你得到输出:
rgb(255, 85, 0)
您必须将所有三个组件与hex定义分开,然后将它们转换为十进制。 这有效:
function hex2rgba(x,a) { var r=x.replace('#','').match(/../g),g=[],i; for(i in r){g.push(parseInt(r[i],16));}g.push(a); return 'rgba('+g.join()+')'; }