d3.js を使用して、SVG コンテナー上にいくつかの円を描画しました。
これらの円のマウスオーバー動作を設定して、簡単なコンソール メッセージを印刷することに成功しました。マウスオーバー (およびマウスアウト) すると、これらのコンソール メッセージが表示されるので、正しく動作していることがわかります。
ただし、そのコンソール メッセージを印刷する代わりに、マウスオーバーしたときにカーソルを手の形に変更し、マウスアウトしたときにカーソルを通常の矢印に戻したいと思います。以下のコードでは、どうすればよいでしょうか。
マウスオーバー時にスタイル プロパティをcursor
に変更しpointer
、マウスアウト時にスタイル プロパティを に変更する必要があることはわかっていますdefault
が、どのように変更すればよいかの構文がわかりません。どなたか説明していただけませんか? 以下は私のコードです。
var myCircle = svgContainer.selectAll(".dots")
.data(myDataList).enter().append("circle")
.attr("class", "dots")
.attr("cx", function(d, i) {return d.centerX})
.attr("cy", function(d, i) {return d.centerY})
.attr("r", 5)
.attr("stroke-width", 0)
.attr("fill", function(d, i) {return "red"})
.style("display", "block");
myCircle.on({
"mouseover": function(d) {
console.log('Hello World!'); // What do I change this to?
},
"mouseout": function(d) {
console.log('Goodbye World!'); // What do I change this to?
}
}
);
ベストアンサー1
次のように実行できます:
myCircle.on({
"mouseover": function(d) {
d3.select(this).style("cursor", "pointer");
},
"mouseout": function(d) {
d3.select(this).style("cursor", "default");
}
});
動作コードここ
または
これを CSS で簡単に解決できます。
myCircle.style('cursor', 'pointer')