2010-09-04 28 views
0

阿爾法值我開發一個工具,它會轉換最大值之間的html的顏色,如RGB,RGBA,HEX,HSLA,取名等JavaScript來得到HEX

而且還HEX(#FFFFFF)任意格式的阿爾法HEX (#00FFFFFF)用於IE6中的過濾器。 但是,我的問題是,我無法將阿爾法值,即00從Alpha十六進制顏色轉換爲rgba阿爾法值,即0.5。 請幫我...

回答

4

剛剛從十六進制數轉換前2位,然後通過255

var rx = /^#([0-9a-f]{2})[0-9a-f]{6}$/i; 
var m = rx.match(theColor); 
if (m) { 
    alpha = parseInt(m[1], 16)/255; 
} 
+0

THX ...它的工作...:d – 2010-09-04 10:32:26

2

分我知道你已經接受KennyTM的答案,但我想我會添加此無論如何。可以使用移位和屏蔽上的十六進制數轉換得到的某些部分:

// Return an array in the format [ red, green, blue, alpha ] 
function hex2rgba(str) { 
    var num = parseInt(str.slice(1), 16); // Convert to a number 
    return [num >> 16 & 255, num >> 8 & 255, num & 255, num >> 24 & 255]; 
} 

var rgba = hex2rgba("#00FFFFFF"); 
// -> [255, 255, 255, 0] 

然後,可以通過除以255的最後一個元素以獲得可與IE過濾器一起使用的值。

的更多信息: