rotate - SVG: Scalable Vector Graphics 编辑

The rotate attribute specifies how the animated element rotates as it travels along a path specified in an <animateMotion> element.

Usage notes

Valueauto | auto-reverse | <number>
Default value0
AnimatableNo

The auto and auto-reverse values allow the animated element's rotation to change dynamically as it travels along the path. If the value of rotate is auto, the element turns to align its right-hand side in the current direction of motion. If the value is auto-reverse, it turns its left-hand side in the current direction of motion.

Setting rotate's value to a number specifies a constant rotation, in degrees, that does not change with the animation. The default value of 0 keeps the animated element in its original orientation.

Examples

SVG

<svg width="400" height="120" viewBox="0 0 480 120"
    xmlns="http://www.w3.org/2000/svg">

  <!-- Draw the outline of the motion path in grey -->
  <path d="M10,110 A120,120 -45 0,1 110 10 A120,120 -45 0,1 10,110"
      stroke="lightgrey" stroke-width="2"
      fill="none" id="theMotionPath"/>

  <!-- Red arrow which will not rotate -->
  <path fill="red" d="M-5,-5 L10,0 -5,5 0,0 Z">
    <!-- Define the motion path animation -->
    <animateMotion dur="6s" repeatCount="indefinite" rotate="0">
      <mpath href="#theMotionPath"/>
    </animateMotion>
  </path>

  <g transform="translate(100, 0)">
    <use href="#theMotionPath"/>
  <!-- Green arrow which will rotate along the motion path -->
  <path fill="green" d="M-5,-5 L10,0 -5,5 0,0 Z">
    <!-- Define the motion path animation -->
    <animateMotion dur="6s" repeatCount="indefinite" rotate="auto">
      <mpath href="#theMotionPath"/>
    </animateMotion>
  </path>
  </g>

  <g transform="translate(200, 0)">
    <use href="#theMotionPath"/>
  <!-- Blue arrow which will rotate backwards along the motion path -->
  <path fill="blue" d="M-5,-5 L10,0 -5,5 0,0 Z">
    <!-- Define the motion path animation -->
    <animateMotion dur="6s" repeatCount="indefinite" rotate="auto-reverse">
      <mpath href="#theMotionPath"/>
    </animateMotion>
  </path>
  </g>

  <g transform="translate(300, 0)">
    <use href="#theMotionPath"/>
  <!-- Purple arrow which will have a static rotation of 210 degrees -->
  <path fill="purple" d="M-5,-5 L10,0 -5,5 0,0 Z">
    <!-- Define the motion path animation -->
    <animateMotion dur="6s" repeatCount="indefinite" rotate="210">
      <mpath href="#theMotionPath"/>
    </animateMotion>
  </path>
  </g>
</svg>

Result

Specifications

SpecificationStatusComment
SVG Animations Level 2
The definition of 'rotate' in that specification.
Editor's DraftInitial definition

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:114 次

字数:4807

最后编辑:6年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文