ここでは比較的新しいコーダー。D3とjqueryを使用して、カーソルがsvg円上を移動したときにトリガーされるホップアップ効果を作成しています。
円の例は次のようになります。
<circle cx="20.61855670103093" cy="730" class="top1000 Ragtime albumDot" id="0" r="5.5"></circle>
サークルに影響を与えるCSSは次のとおりです。
.albumDot {
fill: #fff;
z-index: 250;
cursor: pointer; /*-- Does not work 90% of the time --*/
stroke: #111;
stroke-width: 3px;
opacity: 1;
}
ホバーを処理するコードは次のようになります。
$('.albumDot').mouseenter(function() {
console.log("mouseover"+ this.id);
hopup(jazzdata[this.id]);
});
$(".albumDot").mouseleave( function() {
console.log("mouseout");
d3.select("#hopup").attr("style","display:none; opacity:0;");
}
ホバー機能は問題なく機能しますが、これらのsvgシェイプのいずれかの上にマウスを移動すると、mouseenterとmouseleaveが何度もトリガーされます。私は形を離れるのではなく、その中で動くだけです。
以前は、mouseoverとmouseoffを使用していましたが、同じ問題が発生しました。円には子要素はありません。
これは、MacのSafariとChromeで発生します。
編集:これはドロップボックスの実例です。