【发布时间】:2019-10-20 19:10:08
【问题描述】:
我的目标是让盒子在保持旋转的同时沿着路径移动。为了实现这一点,我在正方形中添加了一个<animateMotion /> 元素,其路径与圆形相同。 (演示here)。圆和 animateMotion 的路径都以 M 开头,据我所知,它表示 SVG 中的绝对位置。出于某种原因,尽管正方形旋转了 90 度并且正在圆外移动(同时仍遵循圆形路径)。
<svg width="133" height="131" viewBox="0 0 266 131" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M102.242 63.2475C102.242 43.3399 86.105 27.202 66.197 27.202C46.2889 27.202 30.151 43.3399 30.151 63.2475C30.151 83.154 46.2889 99.2939 66.1965 99.2939C86.105 99.2939 102.243 83.154 102.243 63.248" stroke="#00F" stroke-width="1"/>
<path d="M95.0596 24.2323L79.2727 43.3838L73.0606 38.2323L88.8177 19.0823L95.0601 24.2333" fill="red">
<animateMotion
path="M102.242 63.2475C102.242 43.3399 86.105 27.202 66.197 27.202C46.2889 27.202 30.151 43.3399 30.151 63.2475C30.151 83.154 46.2889 99.2939 66.1965 99.2939C86.105 99.2939 102.243 83.154 102.243 63.248"
rotate="auto"
dur="6s" repeatCount="indefinite" fill="freeze"/>
</path>
</svg>
我怎样才能让它工作,为什么它不工作?
【问题讨论】:
-
动画运动是对路径的附加变换,被变换的路径不在原点。