Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Animation 使用<;设置>;在SVG中标记以更改形状的旋转_Animation_Svg_Transform_Smil - Fatal编程技术网

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,id
c1
。然后我对它应用所需的变换(绕中心旋转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”
可能是必需的