获得D3中的元素颜色

时间:2015-06-30 14:57:22

标签: javascript d3.js

对于以下d3代码:

var previousElement = d3.select(this);
console.log(previousElement.attr("style"));

结果如下:

fill: red;

fill: rgb(152, 223, 138);

然后我怎样才能得到这个元素的确切颜色,这样我就可以做出如下判断:

if ( elementColor == 'red')

if (elementColor == 'rgb(152, 223, 138)')

我尝试var elementColor = previousElement.attr("style").fill,它返回null

2 个答案:

答案 0 :(得分:6)

我相信你想要的是previousElement.style('fill')而不是.attr('style')。有关文档,请参阅https://github.com/mbostock/d3/wiki/Selections#style

您可能还想查看D3色彩文档https://github.com/mbostock/d3/wiki/Colors,因为这可能对您有所帮助。

答案 1 :(得分:4)

您可以使用d3.rgb()来解析指定为样式的内容,然后比较R,G和B组件:

var colour = d3.rgb(previousElement.attr("style"));
if(colour.r == 255 && colour.g == 0 && colour.b == 0) {
  // ...
}