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

如何使用svg.js实现矩形移动与旋转同步动画?

矩形移动与旋转同步动画实现方案

问题原因

当前代码里,移动动画时长为5000ms,旋转动画时长为1500ms,两者各自独立循环,导致节奏完全不同步;同时默认旋转原点是矩形左上角,移动时旋转中心会跟着位移,视觉效果不符合预期。

解决方案

把移动和旋转操作放到同一个动画实例中,确保两者共享相同的时长与循环逻辑,同时将旋转中心设置为矩形自身中心,优化视觉表现:

修改后的JS代码:

var ele = document.getElementById('svg_1')
var timeline = new SVG.Timeline();
var x = 200, y = 0;

const svgRect = SVG(ele);
// 将旋转中心设为矩形自身中心(初始位置x=100,y=50,宽高50,中心坐标为125,75)
svgRect.center(125, 75);
svgRect.timeline(timeline);

// 同一个动画链中同步执行移动与旋转
svgRect.animate(5000, 0, 'now')
  .dmove(x, y)
  .rotate(360)
  .loop();

代码说明

  • svgRect.center()用于调整旋转中心到矩形自身中心,避免绕左上角旋转的违和感;
  • 将dmove()和rotate()链式调用在同一个animate()实例下,保证两个变换在5000ms内同步完成,循环时也保持节奏一致;
  • HTML部分无需修改,保持原有结构即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 13:50:00