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

如何修改SVG缩放动画,使其从中心点而非左上角缩放?

修改后的SVG代码
<svg id="spinnerLoaderRef"
     xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     viewBox="0 0 100 100"
     width="150"
     height="150"
     overflow="visible"
     fill="#20207A"
     stroke="none"
     class="single-loader">
    <defs>
        <!-- 移除transform,直接设置cy为20,对应原translate(0 -30)的位置 -->
        <circle id="spinner"
                r="8"
                cx="50"
                cy="20" />
    </defs>
    <use xmlns:xlink="http://www.w3.org/1999/xlink"
         xlink:href="#spinner">
        <animate attributeName="opacity"
                 values="0;1;0"
                 dur="1s"
                 begin="0s"
                 repeatCount="indefinite" />
        <!-- 添加origin属性指定缩放原点为圆的中心(50,20),实现中心点缩放 -->
        <animateTransform attributeName="transform"
                          type="scale"
                          additive="sum"
                          dur="1s"
                          begin="0.13s"
                          repeatCount="indefinite"
                          from="1"
                          to="0.8"
                          origin="50 20"></animateTransform>
    </use>
</svg>

修改说明

  • 调整元素位置: 把原circle的transform="translate(0 -30)"替换为直接设置cy="20",让元素的中心坐标(50,20)更直观,便于指定缩放原点。
  • 设置缩放原点: 在animateTransform标签中添加origin="50 20",这个坐标就是圆的中心位置,动画会以此为原点完成从1到0.8的缩小效果,替代默认的左上角(0,0)原点。
  • 保留原有动画逻辑: 其他动画参数(透明度变化、时长、重复次数等)均保持不变,确保原有视觉节奏不受影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 08:23:26