我有以下代码来获取元素的背景颜色。
var currentColor = $(this).css('background-color');
返回类似rgb(123,123,123)
我现在要做的是将其转换为rgba并将其显示为0.75 alpha
返回类似rgba(123,123,123,0.75)
有什么想法吗?
答案 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)
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)');