我已经预先创建了svg图片。我的JavaScript选择某些类的元素,并添加html工具提示,如果我将它们鼠标悬停。 我有一组其他元素通过类名链接到这些可靠的元素。 我想围绕这些元素与边界(不是一个接一个,但所有的人在一起),如果我mouseover。如何在d3中用div包围所有选定的SVG路径元素?
你有什么想法如何在D3中做到这一点?
我的JavaScript代码如下所示(现在我能只是改变悬停笔触颜色):
var HTMLmouseTip = d3.select("div.mouse.tooltip");
var tooltip = d3.selectAll(".tooltip:not(.css)");
var g = d3.select("svg").select("g");
var clusters = g.selectAll(".showTooltip")
.on("mouseover", function(){
tooltip.style("opacity", "1");
heatmap.style("opacity", "1");
tooltip.style("color", this.getAttribute("fill"));
var id = this.getAttribute("id");
HTMLmouseTip
.html(this.getAttribute("tooltip"))
.style("padding", 5 + "px");
g.selectAll("."+id)
.style("stroke", "red");
})
.on("mousemove", function() {
HTMLmouseTip
.style("left", Math.max(0, d3.event.pageX-120) + "px")
.style("top", (d3.event.pageY + 20) + "px");
})
.on("mouseout", function() {
return tooltip.style("opacity", "0");
});
感谢,
L.
只是应用边框的div容器,即追加的所有要素(组)到div和CSS中的div设置样式? – thatOneGuy
我以同样的方式思考,但是如何在所选元素上移动div?或者追加为我做? 就像我有我的HTMLtooltip相似的div和悬停我追加我的所有元素到该div并将边框更改为实体? –
抱歉花了一段时间,你可以把小提琴放在一起,这样我们就可以看到你的问题是什么? – thatOneGuy