我已經預先創建了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