Bonjour, ou plutôt devrais-je dire bonsoir,
je suis entrain de tenter de de faire interagir un évènement extérieur et une animation svg.
voici le scénario (simple) :
un lien <a id="monBouton">Bouton</a>
un svg inclus dans un <object> qui dessine un carré rouge
quand je clic sur le lien, je veux obtenir un carré jaune
du côté du html :
et du côté de svg :
comment intervenir de manière extérieure sur le svg?
j'ai essayé plusieurs choses:
1/ insérer un <animate> :
...mais ça ne marche pas
2/ mettre un onClick sur le lien + fonction javascript ds le svg
...mais ça ne marche pas non plus
3/ mettre un onClick sur le lien + fonction javascript ds le html
...mais ça ne marche pas non plus.
Je soupçonne qu'il y ait un problème de ciblage de l'élément "carre" puisqu'il se trouve dans un <object> mais je ne sais pas comment l'atteindre dans le DOM
Voilà où j'en suis, j'aimerais bien vos retours sur ce type de petit jeu.
Merci à tous
je suis entrain de tenter de de faire interagir un évènement extérieur et une animation svg.
voici le scénario (simple) :
un lien <a id="monBouton">Bouton</a>
un svg inclus dans un <object> qui dessine un carré rouge
quand je clic sur le lien, je veux obtenir un carré jaune
du côté du html :
<a id="monBouton">Bouton</a>
<object id="objet1" type="image/svg+xml" data="monanimsvg.svg"></object>
et du côté de svg :
<svg width="300px" height="300px" viewBox="0 0 300 300" version="1.1" xmlns="http://www.w3.org/2000/svg">
<!--un carré rouge-->
<rect id="carre" width="300" height="300" fill="red" />
comment intervenir de manière extérieure sur le svg?
j'ai essayé plusieurs choses:
1/ insérer un <animate> :
<rect id="carre" width="300" height="300" fill="red" >
<animate id="monAnim" attributeName="fill" attributeType="XML" from="red" to="yellow" begin="monBouton.click" dur="2s" fill="freeze" />
</rect>
...mais ça ne marche pas
2/ mettre un onClick sur le lien + fonction javascript ds le svg
<a onclick="doSomething()">Bouton</a>
<script type="text/ecmascript"><![CDATA[
function doSomething() {
carre = document.getElementById("carre");
carre.setAttribute("fill", "yellow");
]]>
</script>
<rect id="carre" width="300" height="300" fill="red" />
...mais ça ne marche pas non plus
3/ mettre un onClick sur le lien + fonction javascript ds le html
<a onclick="doSomething()">Bouton</a>
<script type="text/javascript">
function doSomething() {
carre = document.getElementById("carre");
carre.setAttribute("fill", "yellow");
</script>
<rect id="carre" width="300" height="300" fill="red" />
...mais ça ne marche pas non plus.
Je soupçonne qu'il y ait un problème de ciblage de l'élément "carre" puisqu'il se trouve dans un <object> mais je ne sais pas comment l'atteindre dans le DOM
Voilà où j'en suis, j'aimerais bien vos retours sur ce type de petit jeu.
Merci à tous
