gpt4 book ai didi

html - Firefox getBoundingClientRect() 不考虑转换

转载 作者:太空狗 更新时间:2023-10-29 14:17:27 26 4
gpt4 key购买 nike

我正在向我的网页添加一些 SVG 路径,但在使用 Firefox 43.0 时遇到问题。看来,当我将 transform: scale(0.1) 应用于我的路径时,Firefox 不会更新边界客户端矩形(通过 getBoundingClientRect())

这是转换前我的 Path 的屏幕截图,以及正确的边界矩形:

Path without transform

这里是应用了变换,视觉效果清晰地位于边界框之外:

Path with transform

相比之下,Chrome 正在按预期更新其边界框。 (注意受限的比例。)

Path with transform in Chrome

这个问题在 Chrome 或 Edge 上都不存在。我确实找到了 this old bug from 2012其中表示问题已在 12.0 版中修复,文档说明:

Starting from Gecko 12.0 (Firefox 12.0 / Thunderbird 12.0 / SeaMonkey 2.9), the effect of CSS transforms is considered when computing the element's bounding rectangle.

...这似乎不是真的。对于其他浏览器,我将我的圆圈缩小到其原始大小的 10%,然后计算与客户端矩形的坐标偏移,使其在其原始 100% 比例位置上居中。然而,由于客户端矩形在 Firefox 中转换后没有更新,所以它打乱了计算。

我该如何解决 Firefox 的这个问题?

最佳答案

可以通过属性设置转换,例如

<path transform="scale(0.1)" d="..."/>

或您正在做的 CSS。使用 CSS 是较新的方法; SVG 1.1 规范仅指定属性转换。

getBoundingClientRect doesn't take CSS transforms into account目前在 Firefox 上,但它确实考虑了转换属性。

关于html - Firefox getBoundingClientRect() 不考虑转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35403000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com