我有两个绝对定位的 div 元素,它们是重叠的。它们都通过 css 设置 z-index 值。我使用 translate3d
webkit 转换将这些元素从屏幕上动画化,然后再回到屏幕上。转换之后,元素不再尊重它们设置的 z-index
值。
有人能解释一下在对 div 元素进行 webkit 转换之后,它们的 z-index/stack-order 会发生什么变化吗?并解释如何保持 div 元素的堆栈顺序?
下面是关于如何进行转换的更多信息。
在转换之前,每个元素通过 css 获得这两个 webkit 转换值(我使用 jQuery 来执行 .css()
函数调用:
element.css({ '-webkit-transition-duration': duration + 's' });
element.css({ '-webkit-transition-property': '-webkit-transform' });
然后使用 transate3d-webkit-change 对元素进行动画处理:
element.css({ '-webkit-transform': 'translate3d(' + hwDelta + 'px, 0, -1px)' });
顺便说一下,我曾经尝试将 translate3d
的第3个参数设置为几个不同的值来尝试在3d 空间中复制堆栈顺序,但是没有成功。
此外,iPhone/iPad 和 Android 浏览器是我的目标浏览器,这个代码需要运行。