11
votes

Mettre à jour SVG Dynamiquement

J'ai des objets à l'intérieur du SVG pouvant être cliqué par l'utilisateur.

Y a-t-il un moyen de: - Envoyer des informations sur l'objet (ID) cliquée par l'utilisateur au "document HTML principal"? - Dessine du document extérieur dans le fichier SVG.

Probablement, ma description n'est pas claire, ... Je veux mettre en œuvre quelque chose comme ceci:

  1. utilisateur Cliquez sur n'importe quel objet à l'intérieur de l'image SVG;
  2. Le document principal recevra l'identifiant de l'objet cliqué et:
    • affiche des informations sur cet objet;
    • Dessinez un objet supplémentaire à l'intérieur de l'image SVG.

      Questions: Comment communication de SVG au document et du document à SVG?

      Merci beaucoup, toutes les pensées sont les bienvenues!

      P.s. Probablement svg n'est pas le meilleur moyen de faire ça? Qu'est-ce qui va mieux alors?

      edit: J'ai vu une recommandation concernant l'utilisation de Raphaël, ... mais j'aimerais voir des options "natif". (Pour l'instant, j'analyse la mise en œuvre des raphaels pour voir que, mais ne pensez pas que cela fait exactement ce dont j'ai besoin).


0 commentaires

4 Réponses :


4
votes

Je suggérerais d'utiliser une bibliothèque comme Raphaël pour prendre en charge votre bâtiment SVG. Vous pouvez joindre des événements à DOM Objets que vous pouvez obtenir via la propriété noeud d'un composant d'image.


3 commentaires

+1 pour recommander Raphaël. Mieux encore, Raphael prend également en charge VML lorsque SVG n'est pas disponible, ce qui signifie que vous pouvez produire des graphiques vectoriels qui fonctionnent dans tous les navigateurs, même d'anciennes anciennes versions de IE.


Mais Raphaël travaille avec une toile seulement ..?! Je ne trouve pas comment travailler avec SVG avec Raphaël ... ou la toile est juste une autre représatation de SVG?


Il dit "Canvas", mais cela ne signifie pas - c'est un moyen légèrement déroutant de la étiqueter.



1
votes

RAPPAËL.JS est en effet une bonne solution si vous voulez coller à SVG / VML. Vous pouvez maintenant utiliser la toile (nouvelle fonctionnalité HTML 5) également. La toile est une nouvelle balise HTML (pouvant avoir des identités, des événements, ...) qui vous permettent de dessiner des formes gratuites un peu comme SVG. C'est-à-dire que cela ne supporte pas la toile de manière nativement, bien sûr, et vous aurez besoin de "Excanvas.js" (celui-ci, mais celui-ci fonctionne assez bien ...) pour le rendre compatible.

Une seule restriction que je connaisse concernant la toile: l'utilisation d'images d'arrière-plan fait, c'est-à-dire être très lente. J'utiliserais Raphaël.js si c'était quelque chose que vous envisageriez de faire.

bonne chance


1 commentaires

IE9 soutient déjà la toile. Et en fait, pourquoi la question est "comment?"




0
votes

Personne n'a suggéré, mais accidentellement, j'ai trouvé que SVG est déjà soutenu par JQuery! http://plugins.jquery.com/project/svg

Probablement ce n'est probablement pas la meilleure approche, mais je vais essayer de travailler avec SVG à l'aide de JQuery. Et en fait, cela semble raisonnable


0 commentaires