在jquery菜单中定位子菜单与stumbleupon工具栏结合出错

时间:2011-07-17 16:34:11

标签: javascript jquery css positioning

脚本标题:dropline菜单

脚本网址:http://www.dynamicdrive.com/style/cs...rop_line_menu/

我的菜单运行得很好,然而,我发现当我在工具栏上发现绊倒时,子菜单突然放置比它应该低约22px。有时这会增加到这个差异的多倍。您可以在Chrome浏览器中自行测试此行为,启用stumbleupon工具栏并将鼠标悬停在其中一个包含子菜单的菜单项上:http://kwestievan.nl/unityexpress/

我该如何解决这个问题?我检查了body.offset()。top是否存在问题,但实际上是一个高于差异:32px,而菜单中的差异仅为22px。

1 个答案:

答案 0 :(得分:0)

子菜单较低的原因是元素

<ul class="sub-menu"</ul>

正在被赋予

的风格
position: absolute;
left: 233px;
top: 224px;

这样做是将子菜单“RELATIVE”放置在浏览器窗口中,使其距离左侧223px,距离“浏览器窗口”顶部224px。当没有“stumbleupon”工具栏时,这可以正常工作。但是,当您添加stumbleupon工具栏时,它会以iframe元素的形式添加工具栏。由于浏览器窗口的尺寸已经改变,因此iframe元素的高度会导致子菜单被按下。

您可以通过找出“stumbleupon”工具栏的高度来快速测试,并将该高度与子菜单按下显示器/屏幕分辨率的距离进行比较。他们将是一样的。

解决方案是提供元素

<li id="menu-item-1738"</li>

的风格

position: relative;

然后设置子菜单的样式,使其对齐并且“绝对”定位到包含li元素的“RELATIVE”。例如

position: absolute;
top: 20px;
left: 15px;

Offcourse这一切都是由你的脚本完成的。我不确定你为什么要使用javascript。仅凭CSS就可以轻松实现这一点。