我正在我的项目中使用css 3d变换。我试图在多个其他元素的包含元素上应用新的变换。我还尝试在其中一个子元素上使用getBoundingClientRect。该容器还有其他元素。当容器具有以下值时, transform
css属性:
translateZ(1026px) rotateX(-90deg) rotateY(180deg) translateZ(439.001px)
这是特定子元素的
element.getBoundingClientRect().top
值:根据Chrome开发者工具,为77.953109741210944
,但当我使用elements
选项卡将`transform`属性更改为以下内容时:translateZ(1027px) rotateX(-90deg) rotateY(180deg) translateZ(439.001px)
这是
element.getBoundingClientRect().top
的含义:-75048.6484375
。可能会导致这种情况的原因是什么?即使我通过控制台修改值,这种情况仍然发生,所以我没有发布任何代码。当我将第一个translateZ
设置为1000px时,它仍然大约为77。即使它在0时,边界矩形的顶部也在50-100左右。但是当它超过1026px时,该元素似乎会跳到顶部-80000左右。然而,从视觉上看,该元素看起来应该是正常的,并且不会在1027px处随机“跳动”。有人能说出可能导致这种情况的情况吗?如果这是浏览器错误或其他问题,我使用的是chrome 32.0.1687.2 dev-m Aura。
编辑:
这是一个jsfiddle链接: 它将生成一个包含所有
translateZ
值和相应的elt.getBoundingClientRect().top
值的表格。代码有点乱,但是在输出的表格中,仔细查看,您会发现,在某个时刻,顶部值会突然跳得很远。然后它会迅速恢复到之前的值。很奇怪。这个示例可能需要很长时间才能加载。