Animation 如何检测SVG动画是否可用

Animation 如何检测SVG动画是否可用,animation,webkit,svg,mozilla,smil,Animation,Webkit,Svg,Mozilla,Smil,有没有一种好方法可以检测SVG动画是否可用,然后适当地调整DOM 我正在使用animateMotion为包含图像的g的运动设置动画。这只适用于Mozilla;更糟糕的是,animateMotionunstarted会使图像在Mozilla和WebKit中处于不同的位置(但在每个页面中的位置不同!) 似乎我需要一种方法来调整g和图像上的属性,以处理每个场景,并仅在可行的情况下添加animateMotion标记。有什么建议吗?检测到对SVG动画(SMIL)的支持 如果没有完整的示例,就无法确定是什么

有没有一种好方法可以检测SVG动画是否可用,然后适当地调整DOM

我正在使用animateMotion为包含
图像的
g
的运动设置动画。这只适用于Mozilla;更糟糕的是,
animateMotion
unstarted会使图像在Mozilla和WebKit中处于不同的位置(但在每个页面中的位置不同!)

似乎我需要一种方法来调整g和图像上的属性,以处理每个场景,并仅在可行的情况下添加
animateMotion
标记。有什么建议吗?

检测到对SVG动画(SMIL)的支持


如果没有完整的示例,就无法确定是什么导致了这些差异。

Modernizer只检测到高级功能的存在,并相信浏览器不会撒谎。例如,桌面Safari对来自Modernizer的SMIL有一个很大的“是”。但是,几乎所有浏览器(甚至Firefox4!)中都只部分实现了SMIL,您必须测试每个单独的属性动画,以准确确定哪一个正在工作或不工作

例如,不能使用SMIL在桌面Safari中为路径上的文本动画设置startOffset的动画。没有一个库可以检测这样的功能是否存在

IMHO,如果存在CSS转换/动画,则应在除IE以外的所有对象上使用CSS转换/动画。对于IE,应使用Javascript(或画布)动画


(顺便说一句,Chrome上的animateTransform被破坏了——它错误地计算了翻译)

我刚刚遇到了一个运行Android 4.2.2的三星手机的问题。这三种情况都是如此:
Modernizr.svg、Modernizr.svgclippaths、Modernizr.smil
,但没有动画和剪辑路径。看起来只有一个元素可以有剪辑路径。总之,我们以一个不太好的决心结束了:

isAndroid = /Android/.test( navigator.userAgent );
抱歉,android用户,您将只看到备份映像。这是一个可怕的修复,但它只是一个简单的标志动画,所以