【发布时间】:2017-02-13 06:58:34
【问题描述】:
我有一个过滤器功能,可以淡出其余节点并突出显示选定的节点集。我还希望与节点关联的标签反映相同,即淡出其余部分,仅显示与所选节点关联的标签。我有以下sn-ps:
// define properties of nodes
var node = g.append("g")
.attr("class", "nodes")
.selectAll("circle")
.data(graph.nodes)
.enter().append("circle")
.attr("class", "dataNodes")
.attr('id', function(d){ return 'id' + d.id; });
// define visual properties of node labels
var text = g.append("g")
.attr("class", "labels")
.selectAll("text")
.data(graph.nodes)
.enter().append("text")
.attr("font-size","6px")
.attr("dx", 6)
.attr('id', function(d){ return 'id' + d.id; })
.attr("dy", ".15em")
.text(function(d) {
return d.name;
});
function filterByName(relevantArray){
d3.selectAll(".dataNodes").transition().duration(toggleTime).style("opacity", 0.3);
d3.selectAll(".labels").transition().duration(toggleTime).style("opacity", 0.3);
d3.selectAll(relevantArray).transition().duration(toggleTime).style("opacity", 1);
}
过滤器函数通过一组 ID 传递,用于设置节点和标签的不透明度。既然节点 ID 和关联标签的 ID 相同,为什么只有节点的属性会受到函数的影响,而不是标签?
【问题讨论】:
标签: javascript jquery d3.js