SVG SMIL 轨迹 Path 动画(animateMotion)

简介: SVG SMIL 轨迹 Path 动画(animateMotion)
  • 效果

  • 代码
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    html,body {
      margin: 0;
      padding: 0;
      background-color: #001122;
      /* 全屏 */
      width: 100%;
      height: 100%;
      /* 清空字号,免得影响 svg */
      line-height: 0;
      font-size: 0;
    }
  </style>
</head>
<body>
  <!-- animateMotion
    attributeType: 标签类型
    attributeName: 需要支持动画的属性
    type: 子属性
    begin: 动画开始时机
    dur: 动画时间
    fill: freeze(停留在最后)、none(默认,回到起点)
    repeatCount: 动画次数,indefinite(无限次),默认 1
    path: 运行轨迹
    rotate: auto(自动根据轨迹调整好角度)、none(默认,固定角度)
    -->
  <!-- svg -->
  <svg width="100%" height="100%" viewBox="-400 -400 800 800">
    <!-- 需要执行动画的元素 -->
    <rect x="0" y="0" width="40" height="40" fill="rgba(0, 255, 255, 0.5)">
      <!-- 方式一 -->
      <!-- <animateMotion
        path="M 0 0 L 100 100 A 200 200 0 1 0 0 -100"
        dur="3s"
        rotate="auto"/> -->
      <!-- 方式二 -->
      <animateMotion
        dur="3s"
        rotate="auto">
        <mpath xlink:href="#motion-path"/>
      </animateMotion>
    </rect>
    <!-- 轨迹 -->
    <path id="motion-path" d="M 0 0 L 100 100 A 200 200 0 1 0 0 -100" fill="none" stroke="green"/>
  </svg>
</body>
</html>


相关文章
|
4月前
|
前端开发
css_animation运动的贝塞尔曲线
css_animation运动的贝塞尔曲线
24 0
ThreeJS 动画之 Noisy Lines
ThreeJS 动画之 Noisy Lines
58 1
|
前端开发 开发者
基于CSS mask-image 实现炫酷图片过渡效果之星球大战
基于CSS mask-image 实现炫酷图片过渡效果之星球大战
143 0
SVG Path(三)弧线命令
SVG Path(三)弧线命令
175 0
|
12月前
用svg实现一个环形进度条
用svg实现一个环形进度条
89 0
SVG SMIL 动画(基本动画 、变换动画)
SVG SMIL 动画(基本动画 、变换动画)
39 0
|
前端开发 JavaScript
CSS奇思妙想之-利用CSS裁剪(clip-path)完成各种图形
CSS奇思妙想之-利用CSS裁剪(clip-path)完成各种图形
241 1
CSS奇思妙想之-利用CSS裁剪(clip-path)完成各种图形
|
前端开发
css实现画面转场以及边框线条动画
css实现画面转场以及边框线条动画
231 0
|
前端开发
|
XML 前端开发 JavaScript
你可以学会的svg动画(SMIL)
你可以学会的svg动画(SMIL)