Menu contextuel personnalisé en d3 et svg
Je voudrais avoir personnalisé menu contextuel apparaissant lorsque je clic droit sur un svg cercle.
Pour l'instant j'ai trouvé cette réponse qui m'aide à gérer le clic droit avec le code suivant:
.on("contextmenu", function(data, index) {
//handle right click
//stop showing browser menu
d3.event.preventDefault()
});
Maintenant je voudrais savoir comment je peux afficher une boîte contenant le code HTML.
Merci d'avance.
OriginalL'auteur Christopher Chiche | 2012-10-26
Vous devez vous connecter pour publier un commentaire.
Ok, de toute façon je mal lu que vous vouliez être en mesure de construire un menu de contexte, l'utilisation du format svg. Maintenant je vois que ce n'est pas le cas.
En supposant que le html élément que vous souhaitez afficher est déjà créé, et il est juste caché (via css
display:none
) et a un attributid="my_custom_menu"
puis, à l'intérieur de la "contextmenu" gestionnaire que vous mettez quelque chose commed3.select('#my_custom_menu').style('display', 'block')
et il serait en place.Le problème est que lorsque vous écrivez un clic, vous souhaitez que le menu apparaît lorsque vous cliquez à droite.
Je fixe le positionnement à l'aide de la souris, mais avaient à zéro vers le bas du rembourrage/marge de ma commande de menu contextuel var position = d3.de la souris(ce); d3.select('#menu contextuel') .style('left', position[0] + "px") .style('top', position[1] + "px")
OriginalL'auteur meetamit
Juste un commentaire sur la accepté de répondre (ne pas avoir assez de points pour commenter directement). Mais il semble que la version la plus récente de d3 nécessite d3.de l'événement.pageX et d3.de l'événement.pageY au lieu de simplement x et y. Par la documentation ici.
Donc mon code (avec un peu d'IE a l'aide de ce site):
OriginalL'auteur user