大家好。svg动画有问题。我需要js停止圆形动画(为此我删除了标签<animateTransform>),然后恢复它(返回标签),动画要么从头开始,要么更好地从它停止的地方开始。
但是当标签返回时,如果我没有删除动画,动画将从圆圈所在的位置继续。真正的问题是我做错了什么。
提前致谢!
const circle = document.getElementsByTagName('circle')[0],
animate = `<animateTransform
attributeName="transform"
type="translate"
values="0;460;0"
dur="3s"
repeatCount="indefinite"/>`;
let b = true;
setInterval(() => {
b ? circle.innerHTML = '' : circle.innerHTML = animate;
b = !b
}, 1000);
<svg width="500" height="500">
<circle r="20" cy="20" cx="20" fill="#ce3400">
<animateTransform
attributeName="transform"
type="translate"
values="0;460;0"
dur="3s"
repeatCount="indefinite"/>
</circle>
</svg>
onclick='start()'和onclick='pause()'begin="gO1.click"单击带有标识符的按钮时向动画添加启动命令id="gO1"以下是完整的应用程序代码:
脚本和对它的评论不是我的。特别感谢曾经在网上找到的@Other。
绘制螺旋的动画第二个例子
动画的第三个例子
animateMotion如果我理解正确,你可以这样做。相反,我获取
<animate/>了一个属性animation并添加了一个值forwards来存储元素的位置: