【问题标题】:Can't get height of hidden div in Firefox无法在 Firefox 中获取隐藏 div 的高度
【发布时间】:2012-09-23 18:29:58
【问题描述】:

我正在尝试使用 javascript 获取 Netscape 和 Firefox 中最初隐藏的 div 元素的高度(它在 IE 中运行良好)。我尝试使用 MyElement.scrollHeight、MyElement.offetHeight、MyElement.style.height 和许多不同的方法来设置元素最初可见、获取高度然后再次隐藏它。我一直得到 0 的值。有什么想法吗?

【问题讨论】:

  • 你是如何隐藏 div 的?显示:无; ?

标签: javascript


【解决方案1】:

如果我错了,请纠正我(我可能是这样),但是通过一些研究,带有 display: none 的元素没有高度。

要获取高度,您需要取消隐藏它们,获取高度,然后重新隐藏它们。过去曾出现过类似的问题:

jQuery: height()/width() and "display:none"

jQuery: Get height of hidden element in jQuery

(两个 jQuery 示例,但你明白了)

【讨论】:

    【解决方案2】:

    Netscape 中的隐藏元素不可访问。

    您可以使用屏幕外的 div 样式孔设置该位置。例如,将其移至左上角的 -9999。然后您可以访问它的属性,如高度和宽度。

    您也可以看到该元素并获取您的属性并再次隐藏它,但这并不常见,因为您的元素会显示一点点,用户可能会在屏幕上跳跃。
    您应该通过将样式设置为“绝对”并将“顶部”设置为 -9999 像素或更多(取决于您的项目高度)来定位它,然后使用 DOM 和您想要的任何东西来获取元素的高度和宽度......

    【讨论】:

    • 感谢你们的帮助。事实证明,因为我在隐藏的 div 中嵌套了 p 元素,所以我可以访问它们的 scrollHeights,因为它们不是隐藏元素。我读过的关于显示 div、获取元素高度然后再次隐藏它的许多解决方案似乎都不起作用——可能是因为嵌套的 p 元素?
    猜你喜欢
    • 1970-01-01
    • 2011-04-15
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 2013-05-01
    • 2011-06-14
    相关资源
    最近更新 更多