我可以设置Transform raplace的动画吗?

<animateTransform attributeName="transform" attributeType="XML" type="scale" from="1" to="1.15" repeatCount="1" begin="mousedown+0.2s" dur="0.2s" fill="freeze"></animateTransform>
<animateTransform attributeName="transform" attributeType="XML" type="scale" from="1.15" to="1" repeatCount="1" begin="mouseup+0.4s" dur="0.2s" fill="freeze"></animateTransform>


为了处理transform(scale),就像我在这里使用“ stroke-opacity”属性所做的那样:

<rect x="-0.5" y="-0.5" width="1" height="1" fill="white">
  <set attributeName="stroke-opacity" begin="mouseover" end="mouseout" to="0.5"></set>
  <set attributeName="stroke-opacity" begin="mouseout" end="mouseover" to="1"></set>
</rect>


我试图得到这样的东西

<rect x="-0.5" y="-0.5" width="1" height="1" fill="white">
      <set attributeName="transform" type="scale" begin="mousedown" end="mouseout" to="1.15"></set>
      <set attributeName="transform" type="scale" begin="mouseup" end="mouseover" to="1"></set>
</rect>


但是这种结构不起作用。

有用:


  悬停示例(使用set):http://jsfiddle.net/exn2qr0s/
  
  点击示例(使用animateTransform):
  http://jsfiddle.net/exn2qr0s/1/


它不起作用:


  点击示例(使用设置):
  http://jsfiddle.net/exn2qr0s/2/


我需要使用set标记而不是animateTransform来创建按比例放大效果,因为当'mousedown'原因导致animateTransform现在在上次Fire Fox更新后无法正常工作(Deprecated SMIL SVG animation replaced with CSS or Web animations effects (hover, click)

最佳答案

每个table in the SVG specification animateTransform仅适用于变换,而其他所有动画元素(包括<set>)均不适用于变换。

10-07 14:08