不可见对象的高度,当它们变得可见时,在javascript中

时间:2009-06-12 11:30:25

标签: javascript dhtml

我有一个代表Tab结构的表 有些单元格设置为display:none;并且仅显示活动选项卡。 我想为所有这些设置max-height。 为此,我浏览了一系列标签并执行以下操作

// get the max-tab-height
for (var i = 0; i < TabPageList.length; i++)
{
    // get max height
    if (TabPageList[i].offsetHeight>MaxTabHeight)
        MaxTabHeight = TabPageList[i].offsetHeight;        
}

此方法的问题是offsetHeight仅适用于显示的活动选项卡。 那么,什么是未显示的高度,什么时候会显示出来?

4 个答案:

答案 0 :(得分:2)

由于非活动选项卡设置为display:none,因此offsetHeight无效。在激活选项卡后,尝试运行MaxTabHeight例程。我假设这是在标签的点击事件中。

答案 1 :(得分:2)

尝试使用visibility:hidden(不显示:none)。我记得,使用可见性元素只是隐藏但保持其尺寸。

答案 2 :(得分:2)

为了便于使用,不应将选项卡设置为使用CSS隐藏。 (仍有一小部分人禁用了js)。如果您浏览标签,读取它们的高度,同时隐藏它们,您可以轻松找到最高的标签。同时使您的网站更加用户友好(:

如果您不希望隐藏的单元格崩溃,您也可以像上面所述使用visibility:hidden;

答案 3 :(得分:1)

正如其他人所说,你可以通过将可见性设置为隐藏来获得高度(这使得对象在隐藏时保持其尺寸):

visibility:hidden;

使用额外的技巧将其位置设置为绝对值以避免占用页面空间(您可以在达到高度所需的时间内执行此操作,然后恢复其位置属性)。

第二种方法可能是保持标签可见,但通过将其绝对位置设置为足够大的坐标将其移出页面。