2011-03-25 96 views
0

可能重复:
Javascript function to convert color names to hex codes是否可以确定指定颜色的十六进制值?

是否可以检索或计算该浏览器当前使用名为颜色的十六进制值?比如我想能够做到像下面这样:

(HTML)

<div id="container" style="background-color: lightgreen"></div> 

(JavaScript的)

var container = document.getElementById("container"); 
var colorAsHex = getHexColor(container, "background-color"); 

充其量我希望能够找到我刚刚错过的jQuery解决方案。最糟糕的是,只要我可以覆盖4个主要浏览器,我就可以使用浏览器特定的黑客程序。

+0

谢谢。链接问题似乎适用。 – DuckMaestro 2011-03-25 06:36:52

+0

顺便说一句,酷绰号;-) – zerkms 2011-03-25 06:38:39

回答

3

$('div').css('background-color')似乎是工作......看到这个例子link

+0

哇,有趣。它看起来像(从简单的测试),在jQuery 1.4.2中它返回“绿色”,但在jQuery 1.4.4 +它返回RGB组件。 – DuckMaestro 2011-03-25 06:40:17

1
var namedColor = "lightgreen"; 
var rgbColor = $("<div></div>").css("background-color", namedColor).css("background-color"); 
var match = rgbColor.match(/(\d+),\s*(\d+),\s*(\d+)/); 
var value = 
    (+match[1] << 16) + 
    (+match[2] << 8) + 
    (+match[3] << 0); 
var hexColor = value.toString(16); 
while (hexColor.length < 6) { 
    hexColor = "0" + hexColor; 
} 
console.log("#" + hexColor) 

演示herehere

相关问题