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 Safari过滤器/动画错误_Animation_Svg_Svg Filters - Fatal编程技术网

Animation SVG Safari过滤器/动画错误

Animation SVG Safari过滤器/动画错误,animation,svg,svg-filters,Animation,Svg,Svg Filters,我对Safari中CSS动画的SVG过滤器有问题 问题是,在Safari中,过滤器从完成的动画中获取颜色。我所期望的,以及在Chrome和Firefox中出现的情况是,过滤器将获取开始的动画颜色,然后与每个颜色一起设置为最终颜色 我是SVG新手,非常感谢您的帮助 这是如何使用animate元素在过滤器中重做动画的方法。这应该可以在Safari/Mac上使用,但我只在Chrome/Windows上测试过。我没有从HSL转换颜色,因此您应该将.2/.1/.3替换为以百分比表示的起始RGB值,将.8

我对Safari中CSS动画的SVG过滤器有问题

问题是,在Safari中,过滤器从完成的动画中获取颜色。我所期望的,以及在Chrome和Firefox中出现的情况是,过滤器将获取开始的动画颜色,然后与每个颜色一起设置为最终颜色


我是SVG新手,非常感谢您的帮助

这是如何使用animate元素在过滤器中重做动画的方法。这应该可以在Safari/Mac上使用,但我只在Chrome/Windows上测试过。我没有从HSL转换颜色,因此您应该将.2/.1/.3替换为以百分比表示的起始RGB值,将.8/.6/.8替换为以百分比表示的结束RGB值。使用“fakeSMIL”库实现IE10+兼容性(谷歌提供)


也许有一种方法可以让Safari实现这一点,但最简单的方法是使用JavaScript制作动画,或者在过滤器中使用SMIL。
<filter id="dropGlow" color-interpolation-filters="sRGB">
   <feGaussianBlur stdDeviation="2" result="coloredBlur"/>
     <feMerge>
        <feMergeNode in="coloredBlur"/>
         <feMergeNode in="SourceGraphic"/>
    </feMerge>
    <feColorMatrix type="matrix" values="1 0 0 0 0 
                                           0 1 0 0 0
                                           0 0 1 0 0
                                           0 0 0 1 0">
    <animate attributeName="values" from="0 0 0 0 .2
                                          0 0 0 0 .1 
                                          0 0 0 0 .3 
                                          0 0 0 1 0" 
                                      to="0 0 0 0 .8 
                                          0 0 0 0 .6 
                                          0 0 0 0 .8 
                                          0 0 0 1 0" 
       begin="4s" fill="freeze" dur="1s"/>
          </feColorMatrix>
    </filter>