Mobile Safari 中的 2D 变换硬件是否加速?

2024-01-07

我经常被告知 CSS 3D 变换在 Mobile Safari 中是硬件加速的,这让我想知道这是否意味着 2D 变换不是?我想不出为什么它们不会这样,因为它们基本上都可以作为 3D 变换来实现,但我想确切地知道。

如果事实证明 2D 变换不是硬件加速的,那么任何关于原因的见解将不胜感激。


您是对的,CSS 2D 变换在 Mobile Safari 中不是硬件加速的,但 3D 变换是。我不确定为什么会这样,但也许他们认为这对于大多数 2D 变换来说太过分了。不必要地使用 GPU 可能会对电池寿命产生不利影响。

将 2D 变换转换为 3D 变换非常容易,因此不是什么大问题。一种技巧是使用translateZ(0),如下所述:http://creativejs.com/2011/12/day-2-gpu-accelerate-your-dom-elements/ http://creativejs.com/2011/12/day-2-gpu-accelerate-your-dom-elements/

EDIT

苹果在他们的文档中没有提及任何相关内容,因此很难获得权威来源。以下是苹果公司的 Dean Jackson 对此的评价(摘自http://mir.aculo.us/2010/08/05/html5-buzzwords-in-action/ http://mir.aculo.us/2010/08/05/html5-buzzwords-in-action/):

本质上,任何将 3D 操作作为其功能之一的变换都会触发硬件合成,即使实际变换是 2D,或者根本不执行任何操作(例如 translate3d(0,0,0))。请注意,这只是当前的行为,将来可能会发生变化(这就是我们不记录或鼓励它的原因)。但在某些情况下它非常有帮助,可以显着提高重绘性能。

Sencha 的 Ariya Hidayat 写了一篇文章解释移动浏览器上的硬件加速:http://www.sencha.com/blog/understanding-hardware-acceleration-on-mobile-browsers/ http://www.sencha.com/blog/understanding-hardware-acceleration-on-mobile-browsers/。这是该帖子的一个片段:

将CSS转换矩阵设置为translate3d或scale3d(即使不涉及3D)的最佳实践来自于这样一个事实:这些类型的矩阵会将动画元素切换为拥有自己的层,然后将其与网页的其余部分和其他层。但您应该注意,创建和合成图层是有代价的,即内存分配。为了硬件加速而盲目地合成网页中的每个小元素是不明智的,你会吃掉内存。

这是 html5rocks.com 上的一篇讨论硬件加速的文章:http://www.html5rocks.com/en/tutorials/speed/html5/ http://www.html5rocks.com/en/tutorials/speed/html5/。这是其中的一个片段:

目前,大多数浏览器仅在有强烈迹象表明 HTML 元素将从中受益时才使用 GPU 加速。最明显的迹象是对其应用了 3D 变换。现在您可能并不真正想要应用 3D 变换,但仍然可以从 GPU 加速中获益 - 没问题。简单地应用恒等变换:

-webkit-transform: 翻译Z(0);

Firefox 和 Internet Explorer 已经使用硬件加速进行 2D 转换,因此如果 WebKit 浏览器(Chrome、Safari)在不久的将来包含它,我不会感到惊讶。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mobile Safari 中的 2D 变换硬件是否加速? 的相关文章

  • 移动 Safari 与主屏幕 Web 应用程序

    我正在为 iOS 开发一个 web 应用程序 我注意到在移动 safari 上运行和从主屏幕运行之间存在一些奇怪的事情 是否有任何资源可以提供在模式之间切换的通用接口 如果没有 是否有任何资源详细说明这两种模式之间的所有差异和陷阱 我遇到过
  • 子级的 CSS 缩放变换不影响父级大小

    我有一个太大的组件 我想缩小它 我可以通过缩放变换来做到这一点 但父容器不会缩小以适应 在我的真实代码中 带有 SHRINK ME 类的 div 实际上是一个 Angular 日历组件 但这简化了repo https codepen io
  • 修复了移动 Safari 网站上带有文本字段的标题

    我已经四处寻找了一段时间 但似乎找不到解决此问题的方法 当输入字段在移动 safari 中获得焦点 尚未检查其他浏览器 时 固定元素将由于 safari 将该元素置于视图中 更靠近中心 而跳转 该错误仅在用户滚动时发生 如果用户仍位于页面顶
  • YouTube 是否破坏了 iPhone 上的 IFrame 嵌入?

    我们一直在使用 YouTube 的 iframe 嵌入视频 一切皆好 iPhone 上除外 在 iPhone 上 视频占位符图像的拉伸高度约为应有的两倍 播放视频会显示消息 您需要更新您的 Adob e Flash Player 这肯定是不
  • CSS硬件加速宽度?

    我正在尝试构建一个 Phonegap 应用程序 该应用程序将允许用户通过移动中间分隔线来更改两列布局的大小 我能够让它工作 但存在一个巨大的用户体验问题 它很滞后 这并不可怕 但在最新的 iPad 上 它甚至很明显 这让我很担心 这是我的
  • touchend 处理程序触发两次

    在 iOS 上的 web 应用程序上 我有一堆仅响应 touchend 的按钮 作为移动 safari 中点击延迟的快捷方式 当我在处理程序中添加警报时 随后点击页面上的任何其他按钮都会触发此原始处理程序 即使它们有自己的处理程序 下面是一
  • CSS 关键帧动画与平移变换在 IE 10 和 Firefox 中捕捉到整个像素

    看起来 IE 10 和 Firefox 在使用 css 关键帧动画中的平移 2d 变换对元素的位置进行动画处理时 都会将元素捕捉到整个像素 Chrome 和 Safari 没有 看起来a lot制作微妙运动动画时效果更好 动画是通过以下方式
  • Safari Mobile iframe 存在内部 iframe 大小问题

    我有一个 简单 的 Web 应用程序 有一个导航和一个内容区域 在内容区域内 我有一个包含更复杂内容的 iframe 不幸的是 iframe 中的内容有另一个 iframe 在这里查看概述 在我的场景中 查看完整的 iframe 内容非常有
  • Mobile Safari HTML5 视频 - 事件侦听器“结束”不会第二次触发

    我正在尝试添加一个按钮 按下时将播放视频 并且当视频结束时显示图像 问题是 我第二次按下按钮时 视频结束 并且没有任何反应 就好像事件侦听器没有被调用一样 var video document getElementById video fu
  • 升级到 iOS 7 后,通过 USB 连接的 iPhone 不会出现在 OS X Safari 的“开发”菜单中

    我一直在 iOS 6 上使用 Safari Mac 中的 Web Inspector 来调试 iPhone 上的移动 Web 应用程序 升级到 iOS 7 后 我的 iPhone 不再出现在 Mac 上 Safari 的 开发 菜单中 我目
  • 如何在跨度上使用 CSS3 变换? [复制]

    这个问题在这里已经有答案了 我有一个行内元素 a span 嵌套在 h1 标签 我申请了一个转换财产给h1 skew所以它看起来像一个平行四边形 我需要转换 the span 标记以 矫正 它及其文本 但这似乎只适用于 IE Here is
  • java.lang.IllegalStateException:无法为 X 创建层 - 使用硬件层时

    我在自定义视图上使用硬件层 以便在为其 Alpha 制作动画时获得更好的性能 在我的崩溃记者上看到这次崩溃 Fatal Exception java lang IllegalStateException Unable to create l
  • SVG 文本元素上的 CSS 转换在 Safari 中不起作用

    尝试在父 SVG 中放置电池指示器 SVG
  • Iphone 上的 Javascript 日期解析

    我正在开发一个针对移动设备的离线 Javascript 网站 iPhone 就是这样的一种移动设备 我正在尝试从 REST API JSON 对象的成员 解析日期 我在用着 Date parse 2010 03 15 10 30 00 这适
  • 从三行菜单到十字菜单的动画变换

    我有一个三行动画菜单 当您单击它时 它会切换为十字 首先 您会看到三条线变成一条线 然后切换到十字线 但我想跳过从三行到一行的步骤 我怎样才能做到这一点 这是小提琴http jsfiddle net adyocsm9 http jsfidd
  • iPhone 点击时使 div 变暗

    当您的 div 附加了点击处理程序时 当点击该 div 时 iPhone 会使该 div 变暗 作为点击指示器 示例 在移动 Safari 上查看http jsbin com awejo3 4 http jsbin com awejo3 4
  • 取消html5浏览器中的单图请求

    我正在动态加载 大 图像以绘制到 html5 画布中 如下所示 var t new Image t onload t src http myurl 但每隔一段时间就会想取消图片请求完全地 我想出的唯一方法是设置src to i e t sr
  • HTML5 Safari iOS 仅访问相机而不访问照片库

  • 为什么在 CSS3 中启用硬件加速会降低性能?

    我在 css3 实验中将 10 000 个小 div 元素从浏览器视口的顶部移动到底部 对于此测试 我使用两种不同的方法 使用 GPU 加速translate3D x y z or translateZ 0 无需 GPU 加速 只需调整to
  • 移动 Safari 事件问题

    我设计了一个网站 其菜单最初是不可见的 当用户单击按钮时 菜单将变得可见 用户可以通过两种方式隐藏当前可见的菜单 单击使菜单可见的按钮 单击网页上除菜单之外的任意位置 我对第二个选项进行编码的方式是将onclick事件到window元素 并

随机推荐