【问题标题】:CSS transition not working with scale(0) + hardware acceleration in chrome 45?CSS 过渡不适用于 chrome 45 中的 scale(0) + 硬件加速?
【发布时间】:2015-12-11 20:29:38
【问题描述】:

当硬件加速被激活(通过will-changetranslateZ(0))并且您在 chrome 45 中与scale(0) 之间进行动画时,CSS 过渡不起作用。(版本 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-bit)will-change 一起工作(如 Firefox 40),但不适用于translateZ(0)。看起来will-change 通常是硬件加速的方式。

【问题讨论】:

  • 发布了一个新版本 45.0.2454.93 m。尝试更新您的浏览器。我已经打开了您的代码笔,在上述版本中一切看起来都很好(启用了硬件加速)。希望这会有所帮助,干杯
  • 仍然无法在 45.0.2454.93 上为我工作(我最后没有 m)。顺便说一句,我在 Mac 上。
  • 很抱歉听到这个消息...我已经在 win7 64 位上进行了测试。假设你的代码写得很好,如果你还没有这样做,请尝试在chromium.org 报告错误部分打开一张票。
  • 在 Windows 7 上的 Google Chrome 45.0.2454.99 m 上测试;它有效!

标签: html css google-chrome animation


【解决方案1】:

浏览器不知道如何读取转换覆盖。 当你使用 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);
} 

【讨论】:

猜你喜欢
  • 2013-01-28
  • 2021-11-27
  • 1970-01-01
  • 2020-11-08
  • 1970-01-01
  • 2020-07-31
  • 2020-06-26
  • 2020-11-22
  • 1970-01-01
相关资源
最近更新 更多