如何制作这个 SVG 形状的旋转动画?
- 鼠标悬停时,图形需要旋转。
- 字母的方向(倒置)在旋转过程中保持不变。
我们的任务不仅仅是做可行的事情,而是以一种好的、美丽的方式。有趣的不同解决方案,适用于任何技术:SMIL、JavaScript、CSS 等。其他
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" width="190px" height="190px" viewBox="0 0 150 150" version="1.1">
<g transform="translate(-27.970238,-63.089294)">
<circle cx="102.97024" cy="138.08929" r="75" fill="#faa"/>
<path d="m163.72735 175.21801-121.51422 0 60.75711-105.234398z" fill="#fea"/>
<path d="m101.32534 136.51129c1.13707 1.96946-2.093801 2.50441-3.273369 1.88988-3.196557-1.66532-2.576443-6.16511-0.506394-8.43662 3.702833-4.0632 10.184423-2.9187 13.599873 0.8771 5.01231 5.57048 3.28688 14.26396-2.26058 18.76312-7.3939 5.99667-18.365634 3.66706-23.926377-3.64407-6.997627-9.20031-4.05364-22.47803 5.027556-29.08962 10.998541-8.00754 26.596501-4.44396 34.252881 6.41104 9.02277 12.79224 4.83662 30.71878-7.79454 39.41613-14.58316 10.04143-34.843578 5.23086-44.579374-9.17802-11.062431-16.37229-5.626194-38.97017 10.561506-49.74263 18.160148-12.085079 43.098048-6.022324 54.905878 11.94499 13.10894 19.94713 6.41905 47.2269-13.32848 60.06913" style="fill:none;stroke-width:0.26458332;stroke:#000"/>
<g>
<circle cx="55.940475" cy="108.0119" r="12.851191" fill="#efa"/>
<text x="51" y="112" style="fill:#000;font-family:sans-serif;font-size:14px;font-weight:bold;letter-spacing:0px;font-height:2;">
A
</text>
</g>
<circle cx="153.68513" cy="110.27975" r="12.851191" fill="#efa"/>
<text xml:space="preserve" x="114" y="116" style=fill:#000;font-family:sans-serif;font-size:14px;font-weight:bold;">
B
</text>
<text xml:space="preserve" x="102.05357" y="195.70238" style="fill:#000;font-family:sans-serif;font-size:10.58333302px;letter-spacing:0px;line-height:1.25;word-spacing:0px">
C
</text>
<g>
<circle cx="105.15297" cy="192.45177" r="12.851191" fill="#efa"/>
<text x="100" y="198" style="fill:#000;font-family:sans-serif;font-size:14px;font-weight:bold;letter-spacing:0px;line-height:1.25;word-spacing:0px">
C
</text>
</g>
</g>
</svg>
我会这样做:
PS:我在这里移动了一些东西以使标记更容易旋转
纯 SVG
优化了源,使其更容易。
动画逻辑与 CSS 动画答案中的几乎相同。
点击后动画会开始
添加螺旋动画:
另一种带有螺旋轨道的选项
与其他 SVG 元素结合使用的螺旋动画选项
这个例子使用了几个动画:
它可以是任何形状:箭头、球等。
这个动画是由 animateMotion实现的
#track螺旋的轨迹在哪里负责旋转方向的属性
完整的示例代码。单击徽标以启动动画。
另一个例子,一个球在一个不断增长的螺旋的末端