Animation SVG动画笔划偏移行为异常

Animation SVG动画笔划偏移行为异常,animation,svg,smil,Animation,Svg,Smil,我有以下(简化的)SVG: 当我点击路径获取FirefoxV16报告82.4的长度时。。。这就是我用于dasharray的内容。但它从已经绘制的部分路径开始,擦除它,然后再次绘制完整的路径!?我修补了dasharay的值,当我使用110时它可以工作,但我不知道为什么 我还没有尝试过其他浏览器或Firefox的更新版本 请注意,完整的问题是将单词转换为路径。路径是不连续的-它有5个部分(在“e”、“z”和“h”的脚本形式中有一个循环,第一个字母“L”未与其余字母连接)。我想做的是让它看起来像是

我有以下(简化的)SVG:


当我点击路径获取FirefoxV16报告82.4的长度时。。。这就是我用于dasharray的内容。但它从已经绘制的部分路径开始,擦除它,然后再次绘制完整的路径!?我修补了dasharay的值,当我使用110时它可以工作,但我不知道为什么

我还没有尝试过其他浏览器或Firefox的更新版本

请注意,完整的问题是将单词转换为路径。路径是不连续的-它有5个部分(在“e”、“z”和“h”的脚本形式中有一个循环,第一个字母“L”未与其余字母连接)。我想做的是让它看起来像是激光在画字母。在前面的一个问题中,我了解到设置dashoffset动画将实现这种效果。我最终能够使用Inkscape将文本转换为路径。现在我在动画制作上有困难


我试着设置dasharray的动画。这适用于正确的长度,但是对于更大的完整单词示例(7个字母长,822个单位长),看起来有几个路径在起作用——不仅仅是5个不连续的部分,还有9个不同的路径。当我尝试在完整单词上设置dashoffset动画时,我看不到任何动画-单词看起来完全成形。

找到了答案。我试图通过使用一个百分比来表现可爱,这样我就不必在每个动画命令中输入长度——我所有的动画都是100%到0%。当我用实际长度替换百分比时,它按预期工作


因此,至少在Firefox和Opera的SVG实现中看起来像是一个bug,因为文档清楚地表明您可以使用百分比…

您认为100%就是路径长度的100%吗?如果是这样的话,那就是你的错误所在。我不认为Opera和Firefox在这里有bug,尤其是因为它们恰好显示的内容相同。

在Opera FWIW中看起来一样感谢您为我检查Opera+1您知道,我非常感谢您对否决票的解释。如果我的答案那么糟糕,那么知道为什么我可以学习就好了。
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0 0 120 100" preserveAspectRatio="none" >
   <script type="text/ecmascript">
       <![CDATA[
        function getPathLength(path)
        {
           alert(path.getTotalLength());
        }
       ]]>
    </script>
   <rect x="0" y="0" width="100%" height="100%" fill="black"/>

   <path id="word" onclick="getPathLength(this);" fill="none" stroke="red" stroke-dasharray="83,83" 
    d="M 8.90625 3.78125 C 8.5377448 3.8134782 8.1622587 3.965423 7.8125 4.21875 C 6.5568946 6.0743722 5.8966744 8.1275786 5.125 10.15625 C 5.2012388 11.683341 4.3280721 13.093169 4.34375 14.59375 C 3.5435523 17.003468 4.9013748 18.393271 4.125 20.90625 C 3.8249969 23.220653 3.3490969 25.389271 2.96875 27.71875 C 2.775721 29.626027 1.7870007 33.314518 4.6875 33.4375 C 6.6892564 33.267533 8.9446263 33.620664 10.6875 32.53125 C 12.308551 32.345986 13.845824 31.488491 14.96875 30.4375 C 15.336184 29.709947 14.506173 29.249547 15.09375 28.53125 C 15.464699 26.390933 13.333175 28.42555 12.53125 28.4375 C 10.625482 29.096293 8.8511553 29.69647 6.875 29.65625 C 5.6218253 29.22028 6.5435685 27.168764 6.34375 26.03125 C 6.6314225 24.872659 6.8389714 23.78868 7.0625 22.53125 C 7.4982943 20.310119 8.0925706 18.009049 8.5 15.84375 C 9.2688601 14.209069 9.0995411 12.312299 9.71875 10.5625 C 10.027547 9.1134942 10.141384 7.3374588 10.5 5.90625 C 10.999008 4.514099 10.011766 3.6845653 8.90625 3.78125 z ">
      <animate attributeName="stroke-dashoffset" begin="0s" from="100%" to="0%" dur="5s" fill="freeze" />
   </path>
</svg>