2016-05-11 7 views
0

上にあるときに、オープンマウスオーバーしてください。そして、ツールチップを短時間開いたままにする簡単な方法があれば、うまくいっていますか?D3:マウスは、私は、グラフ上のツールチップのため<a href="https://github.com/Caged/d3-tip/" rel="nofollow">d3-tip</a>を使用しているツールチップ

ノード上でmouseoutになると、.hide()メソッドが起動し、実際にはツールチップにカーソルを置くことはできません。

私はそうのような.show()方法、発火することができますので、私はmouseover tooltip要素への道が必要だと思う:

...

tip.on('mouseover', function(d) { 
    tip.show(d); 
} 

をしかし、私はこれを行う方法がわからないんだけど私はJSFiddle hereを設定しました。

これが可能であれば任意のアイデア?

ありがとうございます!ここで

+0

hideメソッドをsetTimeoutで上書きできますか? https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout – Pogrindis

+0

しかし、これはX秒間に閉じることを遅らせるだけです。ツールチップにカーソルを置くと、ツールチップが表示されるまでツールチップが無期限に表示されるようにしたい。 – realph

+0

ああ、よくあなたのフィドルがやっている今... – Pogrindis

答えて

2

が結果だ:http://jsfiddle.net/hx8pjwdu/9/

 .on('mouseover', function(d) {  
     d3.select(".d3-tip").transition().style("opacity", "1"); 
     tip.show(d); 
    }) 
    .on('mouseout', function(d) { 
     d3.select(".d3-tip").transition().duration(1000).style("opacity", "0").each("end", tip.hide); 
    }); 
    d3.select(".d3-tip").on('mouseover', function(d) { 
     d3.select(".d3-tip").transition().style("opacity", "1"); 
    }).on('mouseout', function(d) { 
     d3.select(".d3-tip").transition().duration(1000).style("opacity", "0").each("end", tip.hide); 
    }); 

私はあなたのD3-tipのmouseoverイベントを追加し、そのhideイベントフェードアウトしました。

+0

データポイントをさらに使用すると、表示される/消えるツールチップは非常に矛盾します。 http://jsfiddle.net/hx8pjwdu/6/。複数のツールチップに次々にホバーしてみてください。 – realph

+0

これはすばらしいです、ありがとう! – realph

+0

ツールヒントが消えると、ツールヒントがあった場所にカーソルを合わせると再び表示されます。これをやめさせる方法はありますか?ノード上にマウスを置いたときにツールチップが表示されるだけですか? – realph

関連する問題