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

标签 iphone html css jquery-mobile hardware-acceleration

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

jQueryMobile 似乎通过 translate3D 和/或 translateZ 打开了硬件加速。

现在我想为某些 HTML 元素关闭此功能。

这给了我两个问题:

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

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

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

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

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

  • 加速整个过程会给 GPU 带来沉重的负载,从而导致整个应用在滚动时卡顿。
  • 据我所知,最好的做法是让 CPU 处理静态内容,而 GPU 只处理所有精美的动画内容。
  • 当动画结束时,应停用硬件加速,因为它不再需要并且会缩短电池生命周期。

最佳答案

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

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

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

关于iphone - 如何通过 CSS 关闭某些 HTML 元素的硬件加速?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14323908/

相关文章:

javascript - jQuery each 和 change 合并

html - div 与表格的基线(用于垂直对齐目的)

javascript - JQuery 迭代多个元素并删除每个元素的第一个子项

iphone - AirPlay 支持、MPMoviePlayerController 和 MPVolumeView 关系

iphone - 如何在枚举 UIScrollView 的 subview 时排除滚动指示器?

iphone - MapKit iPhone 显示缩放控件

javascript - 从 Href 打开扩展列表

iphone - 刷新 MKMapView 上的 MKAnnotationView

javascript - 在服务端渲染局部 View 或在客户端发送json数据渲染模板

javascript - 外部元素在外部 ng-repeat 中访问数据