所以我有一个带有不同级别下拉菜单的侧边菜单。每个级别的容器设置为 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;?