如何通过CSS关闭某些HTML元素的硬件加速?

时间:2013-01-14 17:56:28

标签: iphone html5 css3 jquery-mobile hardware-acceleration

我使用HTML5,CSS3和jQueryMobile创建了一个非常复杂的Web应用程序。

似乎jQueryMobile通过translate3D和/或translateZ在此处启用硬件加速。

现在我想关闭某些HTML元素。

这给了我两个问题:

  • 是否有css属性/属性或者我可以用来告诉浏览器关闭某些元素的硬件加速?
  • 如果不是:我必须找到使用translate3DtranslateZ的地方并将其删除,对吗?我怎样才能做到这一点?整个标记非常复杂,包含许多HTML元素。我无法浏览检查器中的每个元素并进行搜索。

更新: 我想解决此问题的原因

在我的网络应用中,有些元素需要可刷卡(例如图片库)。在这种情况下,我需要硬件加速。对于需要iScroll的div容器和应该动画的所有其他元素(例如幻灯片和淡入淡出动画)也是如此。

但是,应用程序的许多部分都是静态的(不是动画的)。使用Safari中的特殊启动选项,我能够使得硬件加速的部件可见。通过这种方式,我注意到THE WHOLE应用程序获得了硬件加速,而不仅仅是必要的部分。

恕我直言,这不是一件好事,因为:

  • 加速整个事情会给GPU带来沉重的负担,这会让整个应用程序在滚动时断断续续。
  • AFAIK最佳做法是让CPU执行静态操作,而GPU只处理所有花哨的动画内容。
  • 当动画结束时,硬件加速应该被取消,因为它不再需要,并且会缩短电池的使用寿命。

1 个答案:

答案 0 :(得分:1)

经过成千上万行CSS代码后,我发现了这个:

.ui-page{-webkit-backface-visibility: hidden !important}

这对所有页面都有效并导致问题。删除该行为我修复了它。