You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否实现从SVG直线出发、自中心扩宽为完美圆形的动画?

实现从SVG直线到圆形的中心扩宽动画

Absolutely! 完全可以实现你想要的效果——从直线中心向外扩宽,最终形成完美圆形。核心思路是用一个<circle>元素模拟初始直线状态,再通过同步动画调整半径和描边宽度,实现平滑过渡。

这里是完整的实现代码:

<svg height="210" width="500">
  <circle 
    cx="100" cy="150" r="0" 
    style="stroke:rgb(255,0,0); stroke-width:100; fill:none"
  >
    <!-- 动画半径从0增长到50 -->
    <animate 
      attributeName="r" 
      from="0" to="50" 
      dur="2s" 
      fill="freeze"
    />
    <!-- 动画描边宽度从100缩小到2 -->
    <animate 
      attributeName="stroke-width" 
      from="100" to="2" 
      dur="2s" 
      fill="freeze"
    />
  </circle>
</svg>

关键原理拆解:

  • 初始状态匹配直线:把圆形半径设为0,描边宽度设为100(刚好等于你原直线的长度),此时视觉上就是一条和你代码完全一致的水平直线。
  • 同步动画过渡:两个<animate>元素配合工作:
    • 半径从0逐步增加到50(圆形半径恰好是直线长度的一半),让图形从中心向外扩张。
    • 描边宽度从100逐步缩小到2,还原你原直线的描边粗细。
  • 动画细节控制:dur="2s"设置动画时长为2秒,fill="freeze"让动画结束后保持圆形状态,不会跳回初始直线。

如果想要调整动画快慢,修改dur的值即可(比如1s是1秒完成,3s是3秒完成)。

内容的提问来源于stack exchange,提问作者BunchOfPaper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:18:36