单击后清除 d3 中的不透明度
Clear opacity in d3 after click
var arcs = vis.selectAll("g.slice").data(pie).enter().append("svg:g").attr("class", "slice");
arcs.append("svg:path")
.on("click", function(d) {//clicking on individual arcs
arcs.style("opacity", 1);
d3.select(this).style("opacity", 0.7);
所以我有一个饼图,当我点击一个单独的圆弧时,它的不透明度会下降到 0.7。但是,当我点击另一个圆弧时,我希望不透明度回到 1。此代码现在不起作用。每当我单击新弧线时,之前单击的任何弧线的不透明度都会持续存在。
问题是您要将 path
元素附加到 g
元素并为其设置不透明度。所以在点击处理程序中,你必须再次 select 那些:
.on("click", function(d) {
arcs.selectAll("path").style("opacity", 1);
d3.select(this).style("opacity", 0.7);
})
var arcs = vis.selectAll("g.slice").data(pie).enter().append("svg:g").attr("class", "slice");
arcs.append("svg:path")
.on("click", function(d) {//clicking on individual arcs
arcs.style("opacity", 1);
d3.select(this).style("opacity", 0.7);
所以我有一个饼图,当我点击一个单独的圆弧时,它的不透明度会下降到 0.7。但是,当我点击另一个圆弧时,我希望不透明度回到 1。此代码现在不起作用。每当我单击新弧线时,之前单击的任何弧线的不透明度都会持续存在。
问题是您要将 path
元素附加到 g
元素并为其设置不透明度。所以在点击处理程序中,你必须再次 select 那些:
.on("click", function(d) {
arcs.selectAll("path").style("opacity", 1);
d3.select(this).style("opacity", 0.7);
})