我正在使用d3来可视化一些节点和链接。当我将鼠标悬停在一个圈子

时间:2015-12-31 06:15:49

标签: d3.js

目前,我可以通过更改节点的笔划来突出显示鼠标焦点上的节点。但是我也希望能够淡出所有其他节点(通过使其笔划更透明)。我唯一的问题是,我不知道如何引用鼠标焦点上没有的所有其他节点。 我希望将其包含在与鼠标悬停和鼠标移除相同的功能中。

var nodes = svg.selectAll(".node")
                  .data(graph.nodes)
                  .enter().append("g")
                  .attr("class", "node").
                  on("mouseover", mouseover)
                  .on("mouseout", mouseout);

function mouseover() {

d3.select(this).select("circle").transition().style("stroke-width","9");

}

function mouseout() {
d3.select(this).select("circle").transition().style("stroke","#0006B3").style("stroke-width","1");
}

1 个答案:

答案 0 :(得分:0)

您可以这样做:

function mouseout() {
    //this will make all the circle fade out
    d3.selectAll("circle").style("opacity", 1);
   d3.select(this).select("circle").transition().style("stroke","#0006B3").style("stroke-width","1");
}

现在鼠标移出时,使所有圆圈不透明度为1:

var Dealer      = require("./dealer")
// ...
var Product = require("./product")

希望这有帮助!