html - CSS 过渡不适用于 scale(0) + chrome 45 中的硬件加速?

标签 html css google-chrome animation

当硬件加速被激活(通过 will-change 或通过 translateZ(0))并且你正在为 制作动画时,CSS 过渡不起作用>scale(0) 在 chrome 45 中。(版本 45.0.2454.85(64 位))

(Firefox 40 使用 will-change,但不使用 translateZ(0))

演示:http://codepen.io/zapdev/pen/ojbdVb (启用硬件加速和隐藏动画停止工作)

我目前的解决方法:

.hide {
    transform: scale(0.0002);
    opcacity: 0;
    transition: transform 400ms, opacity 0ms 400ms;
    pointer-events: none;
}

编辑: 我在 MacOS X 上,我的 WebGL 渲染器是 "Intel Iris Pro OpenGL Engine"

此外:Chrome 47.0.2511.0 canary(64 位)will-change 一起工作(类似于 Firefox 40),但与 translateZ(0) 不兼容。看起来 will-change 通常是硬件加速的方式。

最佳答案

浏览器不知道如何读取转换覆盖。 当你使用 transform:translateZ('value');你覆盖了比例。

要让它工作,你需要用 scale 和 translateZ 初始化所有的 div,这样它就可以在所有方面工作。

VIEW DEMO

div{
  transition: transform 400ms;
  transform:scale(1) translateZ(0);
}

div:hover{
  transform: scale(1.4) translateZ(0);
}

div.hide{
  transform: scale(0) translateZ(0);
} 

关于html - CSS 过渡不适用于 scale(0) + chrome 45 中的硬件加速?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32588504/

相关文章:

javascript - 旋转背景图片

javascript - 如何防止 Chrome 开发者工具被检测到?

html - jQuery Mobile 水平按钮组显示不正确

php - Codeigniter 中的 HTML 格式的电子邮件

javascript - 绘制图像后获取 Canvas 数据时出现问题

html - 幻灯片 Bootstrap 轮播之间的空白

javascript - 两次点击 - 不同的 Action (相同的 div)

javascript - 3 行布局,100% 高度 : 1 auto, 1 自动滚动,1 固定

javascript - 如何在 Chrome 的开发者工具中按主机和端口进行过滤?

java - 为什么在 HTML 中显示转义字符?