前提・実現したいこと
d3.jsを利用しており、円(円グラフではなく、circle)を表示させており、マウスが乗った際に、円の大きさの情報を表示(tooltip)させたいと考えております。
発生している問題・エラーメッセージ
検証モードで確認したところ、要素自体は出ているのですが、文字が表示されませんでした。
該当のソースコード
1)css
.tooltip {
position: absolute;
text-align: center;
width: auto;
height: auto;
padding: 5px;
font: 60px;
background: red;
color: #000;
border-radius: 4px;
-webkit-box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.8);
-moz-box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.8);
box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.8);
visibility: hidden;
}
2)javascript
var svgWidth = 640; // SVG横幅
var svgHeight = 800; // SVG縦幅
var dataset = [ { name: "A", cx: 100, cy: 100, r: 30, color: "DodgerBlue" }, { name: "B", cx: 100, cy: 200, r: 30, color: "DodgerBlue" }, ]; var tooltip = d3.select("body").append("div").attr("class", "tooltip"); var svg = d3 .select("body") .append("svg") .attr("width", svgWidth) .attr("height", svgHeight);
// 円を描画
svg .selectAll("circle") .data(dataset) .enter() .append("circle") .attr("cx", function (d) { return d.cx; // X座標 }) .attr("cy", function (d) { return d.cy; // Y座標 }) .attr("r", function (d) { return d.r; // 円の半径 }) // 円の色 .attr("fill", function (d) { return d.color; }) //イベント設定 .attr("class", "circle") .on("mouseover", function (d) { tooltip .style("visibility", "visible") .html("name : " + d.name + "<br>value : " + d.r); }) .on("mousemove", function (d) { tooltip .style("top", d3.event.pageY - 20 + "px") .style("left", d3.event.pageX + 10 + "px"); }) .on("mouseout", function (d) { tooltip.style("visibility", "visible"); });
試したこと
類似コードで棒グラフ等では作成できたのですが、円では表示されませんでした。
補足情報(FW/ツールのバージョンなど)
d3.js version5を利用しております。
src="https://d3js.org/d3.v5.min.js"
初めて投稿させていただくため、不備等ございましtら、ご連絡をいただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/05 14:06