为了账号安全,请及时绑定邮箱和手机立即绑定

webkit转换translate3d后css z-index丢失

webkit转换translate3d后css z-index丢失

慕无忌1623718 2019-08-12 16:18:31
webkit转换translate3d后css z-index丢失我有两个绝对定位的div元素重叠。两者都通过css设置了z-index值。我使用translate3dwebkit变换在屏幕上为这些元素设置动画,然后再返回到屏幕上。变换后,元素不再遵循其设定z-index值。任何人都可以解释一旦我对它们进行webkit转换后,div元素的z-index / stack-order会发生什么?并解释我可以做些什么来保持div元素的堆栈顺序?以下是有关我如何进行转换的更多信息。在转换之前,每个元素都通过css获取这两个webkit转换值(我使用jQuery来执行.css()函数调用:element.css({ '-webkit-transition-duration': duration + 's' });element.css({ '-webkit-transition-property': '-webkit-transform' });然后使用translate3d -webkit-transform对元素进行动画处理:element.css({ '-webkit-transform': 'translate3d(' + hwDelta + 'px, 0, -1px)' });顺便说一句,我已经尝试将第三个参数设置translate3d为几个不同的值,以尝试在3d空间中复制堆栈顺序,但没有运气。此外,iPhone / iPad和Android浏览器是我的目标浏览器,此代码需要运行。两者都支持webkit转换。
查看完整描述

3 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

位迟到这一点但是试着把丢失了Z-index的元素放在下面,我最近在做一些视差的时候遇到了一个问题,这有点大大帮助了。

transform-style: preserve-3d;

这节省了推杆

transform: translate3d(0,0,0);

其他因素会给GPU带来更多压力


查看完整回答
1 反对 回复 2019-08-12
?
撒科打诨

TA贡献1934条经验 获得超2个赞

这绝对与samy-delux指出的bug有关。这应该只影响任何定位为绝对或相对的元素。为了解决该问题,您可以将以下css语句应用于以这种方式定位并导致问题的每个元素:

-webkit-transform: translate3d(0,0,0);

这将将变换应用于元素而不实际进行转换,但会影响其渲染顺序,因此它位于导致问题的元素之上


查看完整回答
反对 回复 2019-08-12
  • 3 回答
  • 0 关注
  • 584 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信