Animation 使用<;设置>;在SVG中标记以更改形状的旋转
我试图使用标签设置形状的旋转角度,但就我个人而言,我无法理解。正确的语法是什么Animation 使用<;设置>;在SVG中标记以更改形状的旋转,animation,svg,transform,smil,Animation,Svg,Transform,Smil,我试图使用标签设置形状的旋转角度,但就我个人而言,我无法理解。正确的语法是什么 编辑:澄清-我试图在设定的时间内将其设置为特定角度,而不是在那里设置动画。我希望它从0旋转跳到110旋转(在上面的示例中)您需要animateTransform元素而不是animate。您可能需要根据需要修改加法和填充属性 或at.这只是解决您的问题的一种方法。 发现的行为设置为,当您给它错误的属性值时,它触发onbegin事件,对元素不做任何操作。 因此,使用它,我为“to”属性提供了错误的属性值。因此set命
编辑:澄清-我试图在设定的时间内将其设置为特定角度,而不是在那里设置动画。我希望它从0旋转跳到110旋转(在上面的示例中)您需要
animateTransform
元素而不是animate
。您可能需要根据需要修改加法
和填充
属性
或at.这只是解决您的问题的一种方法。
发现的行为设置为,当您给它错误的属性值时,它触发onbegin事件,对元素不做任何操作。
因此,使用它,我为“to”属性提供了错误的属性值。因此set命令会在2s
之后触发begin事件,但不会对元素应用任何转换。
然后,在onbegin事件处理程序中,我得到了目标元素,在本例中它是rect,idc1
。然后我对它应用所需的变换(绕中心旋转110)
此外,ONED在5s后触发。在其中,我测试fill属性值,并决定是否恢复应用的转换
这可能是一个解决方案,但在开始值和持续时间值中没有折衷
也
在x dir中转换为set行为
使用设置行为转换x方向中的200和y方向中的100
但是找不到rotate的语法
把小提琴放在这里,我找不到满意的答案
我最终将其编码如下:
- 将原始元素放入
- 对元件进行两次
,一次附加旋转,另一次不附加旋转
- 根据需要,在动画期间将两个
设置为可见或隐藏
例如:
<defs>
<path id="example" d="..."/>
</defs>
<use xlink:href="#example" visibility="hidden">
<set begin="0s" end="1s" attributeName="visibility" to="visible"/>
</use>
<use xlink:href="#example" visibility="hidden" transform="rotate(110 100 100)">
<set begin="1s" end="3s" attributeName="visibility" to="visible"/>
</use>
如果希望动画从一种状态跳到另一种状态,请指定calcMode=“discrete”。比如说:
<animateTransform attributeName="transform" type="rotate" to="110 100 100" dur="1.7s" begin="1s"
calcMode="discrete" />
animateTransform不能与零持续时间一起使用,因此它不是问题中提出的离散设置。这应该可行,但不行:
我需要做同样的事情,但无法解决。-1问题没有要求Javascript解决方案,但是,要想以正确的声明方式突然更改transform属性,而不需要任何动画。值得注意的是,如果有人遇到问题,ONED和onbegin在某些Chrome和Opera版本中不会触发。这件事出了问题。我花了一段时间,但我终于回到了这件事上。为答案干杯。attributeName=“transform”
可能是必需的