Używam D3 do rysowania wykresu punktowego. Chciałbym pokazać podpowiedzi, gdy użytkownik myszkuje nad każdym okręgiem.D3.js: Umieszczanie podpowiedzi za pomocą pozycji elementu, a nie pozycji myszy?
Moim problemem jest to, że mogę dołączyć podpowiedzi, ale są przy wykorzystaniu wskazanego zdarzenia myszy d3.event.pageX
i d3.event.pageY
, więc nie są one umieszczone konsekwentnie nad każdym okręgu.
Zamiast tego, niektóre są nieco na lewo od koła, inne po prawej - zależy to od tego, w jaki sposób mysz użytkownika wchodzi w okrąg.
To jest mój kod:
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);
});
i jest JSFiddle pokazujący problem: http://jsfiddle.net/WLYUY/5/
Czy jest jakiś sposób mogę korzystać z centrum samego okręgu jako pozycja do zorientowania podpowiedź, nie pozycja myszy?
Jeśli jesteś ok z wszelkiego rodzaju podpowiedzi, [ta odpowiedź] (http://stackoverflow.com/questions/10805184/d3-show-data-on-mouseover-of-circle/10806220# 10806220) powinien pomóc. –
Dzięki! Wolałbym używać czystych podpowiedzi D3 niż podpowiedzi, jeśli to możliwe. – Richard