假设我们有一个 50x100 的 div
,如果我们将它旋转 45 度,jquery 会返回不同的宽度和高度值。如果我们再次将它旋转 45 度,jquery 将返回宽度 100 和高度 50。
我正在寻找一种方法来获取实际宽度和高度,而不管旋转如何。
注意:实际上我的元素的父元素有旋转,我不想参与它的旋转。我不愿意使用带有 jquery 宽度高度的 sin/cos 来获取原始尺寸。
最佳答案
由于 jQuery 是一个旧库,它使用了一些不同的组合(getBoundingClientRect
、getComputedStyle
、clientWidth/clientHeight
和 offsetWidth/offsetHeight
(以及 node.style
))。
因此,在不知道您使用的 jQuery 版本的情况下,很难说出它的内部功能。
至少 getBoundingClientRect
为您提供了已转换 元素的实际尺寸。
这是一个小测试用例:https://jsfiddle.net/bxe1ve9q
我敢打赌,使用 clientWidth/clientHeight
或 offsetWidth/offsetHeight
会给您正确的值。
附录:由于您可能不再使用 jQuery(它非常擅长解决浏览器错误),因此您应该留意那些打嗝™。以下是一些可供查看的资源:
关于javascript - 无论旋转如何获取元素尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40809153/