【发布时间】:2011-10-20 16:14:03
【问题描述】:
更新
很抱歉未能添加我们还将许多div 元素与z-index 叠加在一起的小细节。
在解决了这个问题之后,似乎webkit-transform 实际上与z-index 排序混淆了,实际问题与动画本身无关。
结束更新
我目前在一个项目中,我们开发一个非常依赖 CSS3 动画的应用程序。我们正在使用-webkit-transform 和-webkit-transition 为大量div 元素设置动画。
一切都很好,直到今天页面上所有的动画元素都消失了。谷歌浏览器似乎已从 12.xx 更新到 13.0.782.107m,现在,突然之间,带有 -webkit 前缀的 CSS3 属性已经停止工作,并且应用了此属性的元素不再显示。通过 Chrome 调试器删除 -webkit-transform 属性会使元素再次可见。
有没有其他人遇到过同样的问题,或者知道如何解决这个问题?
我可能会补充一点,我尝试只删除 -webkit 前缀(只留下 transform),然后显示缺少的元素,但那样根本不会为元素设置动画,因为 CSS3 属性不支持transform。
我也尝试过使用el.style.webkitTransform 和el.style.WebkitTransform,但没有成功。
将通过一些示例代码进行解释。这样做的预期结果是将sq1 移开并显示sq2。
HTML:
<div id="sq1" style="z-index:10;">
<div id="sq2" style="z-index:5;">
JS
/* fetch the element */
var el = document.getElementById("sq1");
/* apply CSS */
el.style["-webkit-transition"] = "-webkit-transform 500ms linear";
el.style["-webkit-transform"] = "translate3d(30px, 30px, 0px)";
【问题讨论】:
-
我知道这个问题很老了,但如果有人发现这个问题,
z-index是关于 CSS 堆叠顺序的,transform是关于在 3D 空间中转换元素,这些是不相关的概念。
标签: javascript google-chrome css webkit