将RGB颜色值转换为RGBA 0.75 alpha

时间:2014-05-12 12:18:45

标签: javascript jquery css rgba

我有以下代码来获取元素的背景颜色。

var currentColor = $(this).css('background-color');

返回类似rgb(123,123,123)

的内容

我现在要做的是将其转换为rgba并将其显示为0.75 alpha

返回类似rgba(123,123,123,0.75)

的内容

有什么想法吗?

3 个答案:

答案 0 :(得分:21)

由于对于没有alpha的元素,jQuery似乎总是返回像rgb(r, g, b)这样的颜色,你可以简单地使用:

$(this).css('background-color').replace(')', ', 0.75)').replace('rgb', 'rgba');

确保背景颜色已经不是rgba:

var bg = $(this).css('background-color');
if(bg.indexOf('a') == -1){
    var result = bg.replace(')', ', 0.75)').replace('rgb', 'rgba');
}

答案 1 :(得分:2)

http://regex101.com/r/lT9iM4

var re = /(rgb)\(([0-9]+),\s+([0-9]+),\s+([0-9]+)/; 
var currentColor = $(this).css('background-color');
var subst = 'rgba($2,$3,$4,0.75'; 

$(this).css('background-color', currentColor.replace(re, subst));

使用正则表达式的另一种解决方案。但是正如Cerbrus提到的那样,使用正则表达式来解决这个问题很简单。

答案 2 :(得分:0)

另一个正则表达式尝试http://jsfiddle.net/hc3BA/

var colour = 'rgb(123,123,123)',
new_col = colour.replace(/rgb/i, "rgba");
new_col = new_col.replace(/\)/i,',0.75)');