【发布时间】:2017-02-27 15:02:06
【问题描述】:
在开发 CSS 图像缩放功能时,我在移动 Chrome 中遇到了性能问题。
说明: 如果我尝试通过将 CSS transform 属性直接添加到图像来缩放图像,一切正常。 60fps (JSFiddle) 的缩放过渡像黄油一样平滑。
<img src="http://placehold.it/1000x1500" style="transform:matrix(2, 0, 0, 2, 0, 0);" />
问题:但是如果我将图像包装在 div 容器中并尝试转换容器,则过渡非常滞后 (JSFiddle)。过渡以很大的延迟开始并且并不顺利。 这似乎是唯一的移动 Chrome 问题,因为它不会在其他浏览器(如 Android 上的 Firefox)中发生,仅在我的移动设备 (Nexus 5) 和其他一些 Android 设备上发生。
<div style="transform:matrix(2, 0, 0, 2, 0, 0);">
<img src="http://placehold.it/1000x1500" />
</div>
有人知道 CSS 或 HTML 结构有什么问题吗?
【问题讨论】:
-
我想我已经找到了问题所在。这似乎是一个一般的 Chrome 问题,而不仅仅是移动 Chrome 问题。如果您检查此example,您会发现缩放(尤其是缩小)不仅仅是移动 Chrome 中的延迟。如果有一个大图像并且它的一部分不在视口中,则浏览器在其内部光栅化缓存中没有整个图像。所以图像会在必要时进行处理。
标签: html css google-chrome css-transitions