使用jquery获取隐藏元素的维度。

时间:2011-07-13 16:49:31

标签: jquery dimensions

这是一个常见的问题,但我有一点点扭曲,所以希望它不是重复的:

我遇到需要在页面加载时使用.show()呈现的元素上触发display: none的情况。在理想情况下,我会在页面上显示所有内容,然后隐藏需要隐藏的内容。然而,大多数客户讨厌渲染的“闪光”,所以他们通常不愿意这样做。

我现在需要做的是获取设置为display:none的元素的宽度;有很多方法可以做到这一点,但传统上有点hacky,如'克隆html,设置阻止,进行计算,删除克隆'类型的东西。

问题的“扭曲”是:有更新/更好/默认的标准方法来使用更新版本的jQuery(1.6。*)吗?或者我们仍然会回复自己的解决方法吗?

3 个答案:

答案 0 :(得分:3)

在某些情况下,您可以设置为position:absolute,visibility:hidden,display:block以使其具有适当的大小(虽然不受周围任何因素约束,因为它已从布局中删除),但不是可见并且不会影响页面的布局。然后,设置回显示:无,位置:静态和可见性:可见以将其恢复原状。

答案 1 :(得分:1)

通常,如果在css文件中设置默认的高度 - 宽度,则应该能够获得隐藏元素的宽度/高度。

请看这里:http://jsfiddle.net/qyJjh/

答案 2 :(得分:0)

我只会显示具有负边距的元素,例如-99999px,绝对定位以避免破坏布局。然后你可以展示它并获得宽度和高度,如果你这样做,我认为这不是特别的hacky。