jquery #color到rgba?

时间:2011-07-24 08:26:27

标签: jquery colors rgb

是否可以将颜色#ff0000转换为rgb?

#ff0000转换为rgb(255,0,0);

我很确定这是可能的,我只是不知道如何。任何见解都会很棒!

6 个答案:

答案 0 :(得分:8)

您可以使用:

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);

答案 1 :(得分:6)

.css("background-color")将返回rgb http://api.jquery.com/css/

这里是小提琴http://jsfiddle.net/3nigma/msRqv/1/

答案 2 :(得分:3)

这个算法怎么样?

http://www.javascripter.net/faq/hextorgb.htm

你甚至可以创建一个使用该算法的JQuery插件。我觉得这很酷。我不知道是否已有。

答案 3 :(得分:3)

纯粹使用你拥有的字符串,你可以这样:

var color = '#FF5500';

首先,提取每种颜色的两个十六进制数字:

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)

答案 4 :(得分:1)

您必须将所有三个组件与十六进制定义分开,然后将它们转换为十进制。这有效:

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()+')';
}

答案 5 :(得分:0)