-1
次のコードは、その都市の円の上にマウスを置くと、都市名のテキストボックスを生成します。マウスオーバーの効果を削除し、地図が最初にロードされたときにそれを永久に保持するにはどうすればよいですか?ありがとうございました。テキストボックスをD3で表示する方法
// Place Capital Cities the Map
svgContainer.selectAll("circle")
.data(capitalCities)
.enter().append("circle")
.attr("id", function(d, i) { return d.name.toLowerCase(); })
.attr("cx", function(d, i) { return projectionType(d.coordinates)[0]; })
.attr("cy", function(d, i) { return projectionType(d.coordinates)[1]; })
.attr("r", "10")
.attr("stroke", "black")
.attr("stroke-width", "2px")
.style("fill", "#FFFF00")
.text("City Name:" + "<br />" + cityName);
// Mouse Over a City tells us the name
d3.selectAll("circle").on("mouseover", function() {
// Select the circle being moused over
circle = d3.select(this);
// Extract the name of the city from the bound data
cityName = circle.data()[0].name;
// Update and place the tooltip with the city name.
div.html("City Name:" + "<br />" + cityName)
.style("left", (d3.event.pageX + 9) + "px")
.style("top", (d3.event.pageY - 43) + "px")
.style("display", "inline");
})
// Mouse Out of a City removes the text
d3.selectAll("circle").on("mouseout", function() {
// Make the tooltip invisible
div.style("display", "none");
})
});
テキスト要素を追加するだけです。https://www.dashingd3js.com/svg-text-element – TimCodes
タイムコードに応答していただきありがとうございます。上記の投稿を編集して、どこに変更を加えたのかを反映しましたが、今はテキストが表示されません。 – heisenberg