D3.js 我使用d3来可视化一些节点和链接。我希望当我将鼠标悬停在一个圆上时,能够淡出其他圆(节点)

D3.js 我使用d3来可视化一些节点和链接。我希望当我将鼠标悬停在一个圆上时,能够淡出其他圆(节点),d3.js,D3.js,目前,我可以通过更改节点的笔划来突出显示鼠标焦点上的节点。但是,我还希望能够淡出所有其他节点(通过使其笔划更加透明)。我唯一的问题是,我不知道如何引用不在鼠标焦点上的所有其他节点。 我更愿意将其包含在mouseover和mouseout的相同函数中 var nodes = svg.selectAll(".node") .data(graph.nodes) .enter().append("g")

目前,我可以通过更改节点的笔划来突出显示鼠标焦点上的节点。但是,我还希望能够淡出所有其他节点(通过使其笔划更加透明)。我唯一的问题是,我不知道如何引用不在鼠标焦点上的所有其他节点。 我更愿意将其包含在mouseover和mouseout的相同函数中

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 mouseover() {
//this will make all the circle fade out
d3.selectAll("circle").style("opacity", 0.2);
//this will make our circle opacity 1
d3.select(this).select("circle").style("opacity", 1)

d3.select(this).select("circle").transition().style("stroke-width","9");
}
现在,鼠标悬停,使所有圆不透明度为1:

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");
}

希望这有帮助

您可以这样做:

function mouseover() {
//this will make all the circle fade out
d3.selectAll("circle").style("opacity", 0.2);
//this will make our circle opacity 1
d3.select(this).select("circle").style("opacity", 1)

d3.select(this).select("circle").transition().style("stroke-width","9");
}
现在,鼠标悬停,使所有圆不透明度为1:

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");
}
希望这有帮助