2009-11-11 3 views
2

Laissez-moi essayer d'être aussi clair que possible, même si ce ne sera pas facile. OK, j'ai un cercle à l'intérieur de div, et je connais les coordonnées x et y du cercle à l'intérieur de ce div.Événement déclencheur de JavaScript

Comment créer une infobulle JavaScript ou HTML pour pointer à l'endroit où j'ai cliqué (dans ce cas le cercle)?

est ici l'image afin que vous puissiez mieux comprendre ce que je suis en train de faire:

Here is the picture

Maintenant, je sais que certains d'entre vous penseront: pourquoi ne pas simplement utiliser l'identifiant du cercle et obtenir le info-bulle pour pointer vers cette direction? Eh bien parce que le cercle est créé dynamiquement en tant qu'objet JavaScript et ne fait pas partie du code HTML. Parce que le dessin fait gagner du temps: où puis-je trouver un script d'info-bulle pointant du dessus? Quelque chose comme ça, voici une autre passe:

Screen shot

+1

Vous devriez pouvoir ajouter par programme un gestionnaire de clic au cercle, lorsque vous avez cliqué auriez accès aux valeurs supérieures/gauche pour le cercle et devrait être en mesure d'instancier tout ce que vous avez besoin à l'emplacement approprié. Ne pas afficher cela comme une réponse car c'est juste un pointeur pour vous aider à regarder dans la bonne direction. – Lazarus

+0

Merci Lazarus pour vos conseils, je ne peux pas l'ajouter parce que je n'ai pas écrit le reste du code, et le temps est court. – ant

+0

Meilleur ... image ... jamais. – jvenema

Répondre

3

Si vous vous interrogez sur le positionnement de l'info-bulle, utilisez le style. Donnez l'élément parent position relative et l'enfant position absolue dans une feuille de style:

#canvas { 
    position: relative; 
} 
.tooltip { 
    position: absolute; 
} 

Lorsque vous créez l'info-bulle, donnez-lui la classe « infobulle » et définir ses propriétés style.left et style.top. Essayez quelque chose comme:

function click(evt) { 
    if (! tooltip) { 
     tooltip = document.createElement('div'); // or what-have-you 
     tooltip.className += ' tooltip'; 
    ... 
    tooltip.style.left = evt.offsetX + 'px'; 
    tooltip.style.left = evt.offsetY + 'px'; 
0

Obtenez le coordonnées x et y lorsque la souris est cliqué. Positionnez l'info-bulle [probablement sera une div] aux coordonnées x et y spécifiées.

Pour obtenir les coordonnées voir

event.clientX et event.clientY

+0

Merci pour votre réponse, j'ai déjà ces valeurs .. juste en regardant comment positionner l'info-bulle correctement. – ant

Questions connexes