我已经编写了CSS,它使用了-webkit-transform,-webkit-perspective和几个类似的。我的设计在硬件加速可用的机器上看起来像蜜蜂的膝盖,但在没有硬件加速的情况下实际上是不可用的。如何检查硬件加速可用性并提供回退CSS?
附注:运行chrome://gpu-internals/手动检查可用性。
发布于 2013-03-11 08:24:36
可悲的是,答案似乎是‘你(还)不能’。
Modernizr项目将硬件加速列在“无法检测”的列表中:https://github.com/Modernizr/Modernizr/wiki/Undetectables。
部分问题似乎是,当在页面上呈现任何内容时,HW加速是根据具体情况使用的。因此,尽管理论上浏览器可能支持硬件加速,但它是否会用于任何给定的操作(翻译、转换、重绘等)都是事先不知道的。
你可以想象一个检测方案,它使用性能分析来检测有/没有HW加速的性能变化-但是使用HW加速的事情发生在页面视图之外的层中。例如,即使您可以可靠地启用/禁用硬件加速,也无法检测过渡的帧率。
webkit呈现API看起来像是可以获得这些信息的地方,但是它看起来不能通过页面级Javascript访问(即使DOM中的节点附加了RenderObjects ):https://www.webkit.org/blog/114/webcore-rendering-i-the-basics/
看起来唯一可行的选择是用户代理嗅探一个已知的加速浏览器列表(讨厌)。
https://stackoverflow.com/questions/15310894
复制相似问题