在下面的场景中,我们看到两个 div 在一个容器中应用了 CSS3 3D 转换。当它们被点击时,两者都应该触发一个事件。在这种情况下,会显示一个警报,指示单击了哪个 div。
<!DOCTYPE html>
<html>
<body>
<div style="-webkit-perspective: 600; -webkit-transform-style: preserve-3d; width: 500px; height: 200px; overflow: hidden;">
<div onclick="alert('1');" style="-webkit-transform: translate3d(0px, 0px, -100px); background-color: blue; position: absolute; width: 100px; height: 100px;">
</div>
<div onclick="alert('2');" style="-webkit-transform: translate3d(200px, 0px, 100px); background-color: red; position: absolute; width: 100px; height: 100px;">
</div>
</div>
</body>
</html>
现在的问题是,只有第二个 div 显示了所需的行为。单击第一个 div 不会产生如图所示的警报(在最新的 safari、chrome 和 safari iOS 上测试)。
一旦我将负 z 值从 -100px 更改为 0px 或正值,一切正常。
这是浏览器的bug吗?有什么方法可以实现所需的行为?