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
Value | auto | auto-reverse | <number> |
---|---|
Default value | 0 |
Animatable | No |
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
Specification | Status | Comment |
---|---|---|
SVG Animations Level 2 The definition of 'rotate' in that specification. | Editor's Draft | Initial definition |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论