2

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

似乎 jQueryMobile 通过translate3D和/或在这里和那里打开硬件加速translateZ

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

这给了我两个问题:

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

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

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

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

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

  • 加速整个过程会导致 GPU 负载过重,从而使整个应用程序在滚动时卡顿。
  • AFAIK最好让CPU做静态的东西,而GPU只处理所有花哨的动画东西。
  • 当动画结束时,应该停用硬件加速,因为它不再需要并且会缩短电池寿命。
4

1 回答 1

1

在浏览了成千上万行 CSS 代码后,我发现:

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

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

于 2013-01-15T10:29:57.067 回答