【发布时间】:2023-11-05 00:50:01
【问题描述】:
我需要一些关于 svg/javascript 编程的帮助。我制作了一个 SVG 图形,其中元素“Stern”应该由 onmouseover-event 旋转。我们不允许使用 svg-animations,动画应该由 javascript 完成。我的想法是使用setAttribute("transform",...),但这无论如何都行不通。我用谷歌搜索了大约一个小时,但我发现那里没有任何效果。
stern_rotieren 函数由鼠标触发(我用alert("test") 对其进行了测试),setAttribute("fill","white") 之类的东西在同一个函数中完美运行。只有setAttribute("transform",...) 不起作用。也许你能告诉我我的失败,我很绝望。
<defs>
<script type="text/javascript">
other functions
function stern_rotieren(){
var stern=document.getElementById("Stern");
stern.setAttribute("transform","rotate(15 500 500)");
}
</script>
<symbol id="Baum" fill="white" stroke="green" stroke-width="5">
<path d="M 1000,200 Q 950,400 800,500 Q 600,600 750,650 T 700,850" />
<path d="M 700,850 Q 400,1100 600, 1100 T 500,1400" />
<path d="M 500,1400 Q 250,1600 450,1600 L 850,1600 Q 950,1600 950,1700" />
</symbol>
<symbol id="Kugel" fill="red" onclick="kugel_farbe()" transform="translate(0,0)">
<circle cx="50" cy="50" r="50" />
</symbol>
<symbol id="Stern" fill="yellow" onclick="stern_farbe()" onmouseover="stern_rotieren()" >
<polygon points="200,20 80,360 380,120 20,120 320,360"/>
</symbol>
</defs>
<use xlink:href="#Baum" transform="translate(0,250)" />
<use xlink:href="#Baum" transform="translate(2000,250) scale(-1,1)" />
<use xlink:href="#Kugel" transform="translate(850,1050)" />
<use xlink:href="#Kugel" transform="translate(1050,750)" />
<use xlink:href="#Kugel" transform="translate(1200,1250)" />
<use xlink:href="#Kugel" transform="translate(700,1650)" />
<use xlink:href="#Kugel" transform="translate(1300,1700)" />
<use xlink:href="#Stern" transform="translate(800,185)" />
<use xlink:href="#Stern" transform="translate(970,900) scale(0.5)" />
<use xlink:href="#Stern" transform="translate(800,1300) scale(0.5)" />
【问题讨论】:
-
我相信“transform”是一个 CSS3 样式属性,在这种情况下,您可以将其设置如下: stern.style.transform = "rotate(15 500 500)";
标签: javascript windows svg transform setattribute