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