web-dev-qa-db-ja.com

RGBカラー値を0.75アルファでRGBAに変換します

要素の背景色を取得するための次のコードがあります。

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

rgb(123,123,123)のようなものを返します

私が今やりたいことこれをrgbaに変換し、0.75アルファで表示します

したがって、rgba(123,123,123,0.75)のようなものを返します

何か案は?

14
Tom

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');
}
26
Cerbrus

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
Henrik Peinar

別の正規表現を試してください 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)');
0
nicolallias