D3树图重置颜色

时间:2014-03-25 09:45:24

标签: javascript d3.js

我目前正在使用使用树形图的软件可视化工具。

IMG:https://www.dropbox.com/s/7s5np5x7or94tky/Screenshot%202014-03-25%2010.31.51.png

在我的工具中,您可以搜索元素,然后根据您选择的颜色在树形图中突出显示这些元素。现在我需要在突出显示之前恢复元素的颜色。

有没有办法完全重新渲染树形图,甚至更好地恢复单个元素(例如d3.select("#e-123").resetColor())?

1 个答案:

答案 0 :(得分:1)

D3中没有“重置”属性值的功能。这有两个选择。

为突出显示

指定一个CSS类

突出显示的代码就像是

d3.select("foo").classed("highlight", true);

并重置

d3.select("foo").classed("highlight", false);

在设置时将旧属性值与数据一起存储

要设置突出显示,代码看起来像

d3.select("foo").attr("color", function(d) {
  d.oldColor = d3.select(this).attr("color");
  return newColor;
});

然后重置

d3.select("foo").attr("color", function(d) { return d.oldColor; });

第一种方法是代码较少,但如果你有大量不同的颜色,第二种方法可能会更方便。