Я использую D3 для рисования графа рассеяния. Я хотел бы показывать подсказки, когда пользователь мыши над каждым кругом.
Моя проблема заключается в том, что я могу добавлять всплывающие подсказки, но они позиционируются с использованием событий мыши d3.event.pageX
и d3.event.pageY
, поэтому они не располагаются последовательно над каждым кругом.
Вместо этого некоторые немного слева от круга, некоторые справа - это зависит от того, как пользовательская мышь входит в круг.
Это мой код:
circles
.on("mouseover", function(d) {
tooltip.html(d)
.style("left", (d3.event.pageX) + "px")
.style("top", (d3.event.pageY - 28) + "px");
})
.on("mouseout", function(d) {
tooltip.transition().duration(500).style("opacity", 0);
});
И это JSFiddle, показывающая проблему: http://jsfiddle.net/WLYUY/5/
Можно ли каким-либо образом использовать центр самого круга в качестве положения для ориентации всплывающей подсказки, а не положения мыши?