除了检测getComputedStyle(div,null)
是否存在这两个属性之外,还有没有别的方法,更准确的?
======
检测是为了可以退级兼容
除了检测getComputedStyle(div,null)
是否存在这两个属性之外,还有没有别的方法,更准确的?
======
检测是为了可以退级兼容
13 回答12.6k 阅读
2 回答4.9k 阅读✓ 已解决
7 回答1.8k 阅读
3 回答2.1k 阅读✓ 已解决
7 回答2k 阅读
5 回答572 阅读
3 回答1k 阅读✓ 已解决
首先先定义几个变量,并通过初始化animation 为false来假设不支持CSS动画属性,先设置animationstring变量为animation并在稍后进行修改。创建一个浏览器前缀的数组用来循环遍历并设置pfx前缀为空字符串。
然后,检测创建的elm元素的style属性集合中animation-name 属性是否被设置,如果被设置,则意味着着浏览器支持CSS animation属性,而不需要加任何前缀,然而到目前,还没有任何浏览器实现(译者:chrome中试验了一下是可以的);
如果浏览器不支持无前缀的animation,那么animation变量值仍为false,遍历所有可能的浏览器前缀,由于所有的主流浏览器现在都在该属性前加了前缀,因此在AnimationName 前加上前缀即可。
当代码执行完,如果浏览器不支持CSS animation属性,则返回animation 为false,否则为true。如果animation为true,则所有animation 相关属性名称以及keyframes属性前缀都是检测到的正确的,因此,如果使用firefox,属性名称就是MozAnimation,keyframes前缀就是-moz-,如果使用chrome,属性为WebkitAnimation ,keyframes前缀为 -webkit-。注意,浏览器是不方便在驼峰法和连字符法之间进行切换的。