JQuery # цвет для RGBA? - PullRequest
       6

JQuery # цвет для RGBA?

5 голосов
/ 24 июля 2011

Можно ли преобразовать цвет как таковой #ff0000 в rgb?

Так что конвертировать #ff0000 в rgb(255,0,0);

Я почти уверен, что это возможно, я просто не знаю как. Любое понимание было бы здорово!

Ответы [ 6 ]

8 голосов
/ 24 июля 2011

Вы можете использовать:

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);
6 голосов
/ 24 июля 2011

.css("background-color") вернет RGB http://api.jquery.com/css/

вот скрипка http://jsfiddle.net/3nigma/msRqv/1/

3 голосов
/ 24 июля 2011

Чисто работая с имеющейся у вас строкой, вы могли бы что-то вроде этого:

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)
3 голосов
/ 24 июля 2011

А как насчет этого алгоритма?

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

Вы даже можете создать плагин JQuery, который использует этот алгоритм. Я думаю, это было бы круто. Я не знаю, существует ли он уже.

1 голос
/ 24 июля 2011

Вы должны отделить все три компонента от определения 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()+')';
}
0 голосов
/ 24 июля 2011

Попробуйте это:

http://jsfiddle.net/AlienWebguy/AfVhs/1/

...