Dans ce qui suit, le texte (CLICK ME) est censé réapparaître 0,5 seconde après la fin de l'animation morphMe
. (Voir la dernière ligne de code autre que la fermeture des étiquettes)SVG set attributeName = "visibility" fonctionne la première fois, mais pas après
Cela fonctionne bien, faisant apparaître le texte la première fois que l'animation se termine. Mais ça ne marche jamais après ça. Je ne peux pas comprendre pourquoi cela ne fonctionne qu'une fois;
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="300" viewBox="0 0 300 300">
<defs>
<text id="startText" >CLICK ANYWHERE</text>
</defs>
<rect id="startMe" x="0" y="0" width="300" height="300" fill= "red"> </rect>
<g transform="translate(50, 50)">
<path d="M 100,0 200,200 0,200 50,100 z;" fill="green" stroke="black" stroke-linecap="round" stroke-width="32" stroke-linejoin="round" stroke-dasharray="68">
<animate id="morphMe"
restart="always"
begin="startMe.click;startText.click;click;"
attributeName="d"
dur="2s"
calcmode="spline"
repeatCount="2"
values=
"M 100,0 200,200 0,200 50,100 z ;
M 200,0 200,200 0,200 00,0 z ;
M 200,200 0,200 0,0 200,0 z ;
M 200,0 200,200 0,200 00,0 z ;
M 100,0 200,200 0,200 50,100 z:"
keyTimes="0; .25; .5; .75; 1"
keySplines="1 0 1 1; 1 0 1 1; 1 0 1 1; 1 0 1 1;"
fill="freeze"
/>
</path>
</g>
<g>
<use xlink:href="#startText" x="150" y="160" style="font-size: 18pt; fill: white; stroke: none; font-family: Rockwell; text-anchor: middle;"/>
<set attributeName="visibility" attributeType="CSS" to="hidden" begin="morphMe.begin"/>
<set attributeName="visibility" attributeType="CSS" to="visible" begin="morphMe.end+.5s"/>
</g>
</svg
L'objet pointer-events est au-delà de ce que j'ai étudié jusqu'à présent (je suis encore dans les eaux peu profondes débutants.) Je vais examiner. Bien que vos modifications fonctionnent maintenant pour moi dans Firefox (merci!), Elles ont toujours le même comportement dans Chrome: le texte réapparaît après la première fois dans l'animation, mais il ne revient jamais après les prochaines animations. C'est assez décevant, car il semble que le support pour SVG soit très inégal, et je ne vois rien de mal à la syntaxe. Je suis toujours au point qu'il se pourrait que je fasse quelque chose d'un peu illégal cependant. – darrellart
Vous avez trouvé un bug de Chrome alors. Il n'y a rien de mal avec la syntaxe dans ma réponse. Vous pouvez signaler les bugs de Chrome ici: https://crbug.com/wizard –
Merci beaucoup d'avoir révisé mon code. – darrellart