D3.js: Position des info-bulles à l'aide de l'élément de position, pas la position de la souris?

Je suis en utilisant D3 pour dessiner un graphique en nuage de points. Je voudrais afficher les info-bulles lorsque l'utilisateur passe la souris sur chaque cercle.

Mon problème est que je peux ajouter des info-bulles, mais ils sont positionnées à l'aide de la souris événement d3.event.pageX et d3.event.pageY, de sorte qu'ils ne sont pas positionnés de façon constante au cours de chaque cercle.

Au lieu de cela, certains sont un peu à gauche du cercle, certains à droite, ça dépend de comment l'utilisateur de la souris entre dans le cercle.

C'est mon code:

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);   
  });

Et est un JSFiddle montrant le problème: http://jsfiddle.net/WLYUY/5/

Est-il une manière que je peux utiliser le centre du cercle lui-même que la position d'orienter l'info-bulle, pas la position de la souris?

  • Si vous êtes ok avec tout type d'info-bulle, cette réponse devrait aider.
  • Merci! Je préfère l'utiliser pur D3 info-bulles plutôt que tipsy, si possible.
InformationsquelleAutor Richard | 2013-04-27