要素の背景色を取得するための次のコードがあります。
_var currentColor = $(this).css('background-color');
_
rgb(123,123,123)
のようなものを返します
私が今やりたいことこれをrgbaに変換し、0.75アルファで表示します
したがって、rgba(123,123,123,0.75)
のようなものを返します
何か案は?
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');
}
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 で述べたように、この単純なものに正規表現を使用するのはやり過ぎです。
別の正規表現を試してください 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)');