Firefox 38-40 SMIL 问题 - 速度非常慢(已在 2015 年 9 月 22 日的 FF 版本 41 中解决)

Firefox 38-40 SMIL problems - very slow speed (resolved in FF version 41 from 22.09.15)

你能提供一些关于新版本 FF 的信息吗,它是在版本 37.0.2 之后通过的。 我知道 38 版本的大部分 bug 已经在 38.0.5 版本中修复了。 我注意到在所有新版本的 FF 中属性 'animate' 和 'animateTransform' 的处理速度有所不同,因此页面变得非常慢。如果删除动画标签:

        <rect x="-1.32" y="-0.63" width="3.64" height="1.26" fill="#FFD9D9" stroke-width="0.0" rx="0.12">
            <!--this animation makes half-visible selecting effect -->
            <animate attributeType="CSS" attributeName="opacity" to="0.65" dur="0.5s" begin="mouseover" fill="freeze"></animate>
            <animate attributeType="CSS" attributeName="opacity" to="1" dur="0.5s" begin="mouseout" fill="freeze"></animate>
        </rect>

为此:

        <rect x="-1.32" y="-0.63" width="3.64" height="1.26" fill="#FFD9D9" stroke-width="0.0" rx="0.12">
            <!--no animation -->

        </rect>

然后我们失去动画(悬停)效果并且速度变得正常,就像在旧版本 FF(37.0.2) 中一样(没有删除)动画标签。

我创建了主题:https://bugzilla.mozilla.org/show_bug.cgi?id=1171966

添加了一些示例代码和视频。在页面上有大量元素的情况下会观察到缓慢的问题,但前提是每个元素都具有 'animate' 这样的属性。也许也像这样:

        <rect x="-0.5" y="-0.5" width="1" height="1" fill="white">
            <!--it makes half-visible selecting effect -->
            <set attributeName="stroke-opacity" begin="mouseover" end="mouseout" to="0.5"></set>
            <!-- explicitly reverse the opacity animation on mouseout -->
            <set attributeName="stroke-opacity" begin="mouseout" end="mouseover" to="1"></set>
        </rect>

就我而言,我使用标签制作悬停效果并在鼠标悬停时更改不透明度。不使用 css、html5、DOM

如果能找到类似的主题(Whosebug、bugzilla)或也遇到过此问题的人,那就太好了。 谢谢

由于Chrome放弃了对SMIL的高级支持,Fire Fox会在一段时间内尝试修复这个bug(不是在vers 39,也许以后),使用这些工具是个好主意关闭 CSS 和网络动画

Deprecated SMIL SVG animation replaced with CSS or Web animations effects (hover, click)

此问题已在 Firefox 41 及更高版本中修复。