2015-06-30 4 views
2

Для следующих d3 кодов:получить цвет элемента 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.

+0

вы смотрели ли в документации цвета для d3, https: // GitHub. ком/mbostock/d3/вики/Цвет? –

+0

Если вы уверены в том, что слово заполняете, то просто проверьте как elementColor = "fill: red" –

+0

Просто любопытно, по каким-либо причинам проголосовать? – byteBiter

ответ

4

Вы можете использовать d3.rgb() разобрать все, что указано в стиле, а затем сравнить R, G и B компоненты:

var colour = d3.rgb(previousElement.attr("style")); 
if(colour.r == 255 && colour.g == 0 && colour.b == 0) { 
    // ... 
} 
Смежные вопросы