0

所以我有一个带有不同级别下拉菜单的侧边菜单。每个级别的容器设置为 display:none; 然后javascript在单击父框时向上或向下滑动这些容器。

当我打开每个块时,它不会展开父 div,并且菜单会在页脚上向下滑动。现在我知道你在想什么,但我已经尝试将父元素扩展相同的高度,我已经在我网站的其他区域成功使用了它。

问题是,当我计算父 div 的高度时,即使它们是 display:none; ,它也会将内部每个 div 的高度加在一起。这意味着当我在侧边菜单中展开一个部分时,页脚会下降到超过 10,000 像素!(使用父高度 = 父高度 + 展开部分高度)

我已经尝试获取页脚菜单的 offset.top 并且仍然返回超过 10,000 像素。在其他浏览器中发出警报只会返回我期望的结果,而且我对 javascript 并不十分聪明,无法确切知道为什么会发生这种情况。有什么想法吗?

示例代码 -

<div class="content">
    <div class="level1">
        <div class="level2">
            <div class="level3">
                <div class="level4">
                    SOME PRODUCTS....
                </div>
            </div>
            <div class="level3">
                SOME PRODUCTS....
            </div>
        </div>
        <div class="level2">
            <div class="level3">
                SOME PRODUCTS....
            </div>
            <div class="level3">
                SOME PRODUCTS....
            </div>
        </div>
    </div>
</div>

然而,实际列表中大约有 850 种产品。单击每个 div 会扩展其内容,一直到产品级别。有些是 3 深,有些是 5 或 6 深。所有 div 都设置为 display:none; 最初,除非当前正在查看产品,否则父 div 会自动打开。似乎 IE8 会读取每个 div 的高度,即使它们设置为 display:none;?

4

0 回答 0