【发布时间】:2012-11-15 13:39:45
【问题描述】:
我确信可能有人问过这个问题,但我找不到正确的解决方案..
我需要在鼠标悬停的图标上显示一个菜单,该图标可以放置在页面上的任何位置。示例代码在这里:(http://jsfiddle.net/Qfjdk/2/) 这显示了弹出窗口,但是如果我从
更改代码#nav {
margin:0;
padding:0;
list-style:none;
float: left;
}
到
#nav {
margin:0;
padding:300px;
list-style:none;
float: right;
}
可以看出,菜单的位置总是在下方居中。我想根据图标的显示位置更改菜单的位置。
如果图标元素右对齐,我想将菜单定位在图标的右边缘。如果图标元素在显示页面的左下角,我希望左下角的菜单与左上角的元素等对齐。
我不是在寻找算法,我在寻找设置参数的正确方法.. 感谢您的帮助
【问题讨论】:
-
我认为没有算法就无法做到。您可能会想出一个涵盖几种情况(左上 + 左下)的技巧,但您无法用简单的 css 涵盖所有情况。
-
我会使用悬停功能。在显示菜单之前,使用 .offset() 检查图标的位置,并使用回调的 event.pageX / event.pageY 来选择菜单位置。然后用 .css() 修改菜单位置
-
@djjeck,我不是说不用算法就可以完成。我愿意提出这一点。我正在尝试获取正确的语法,以便我可以填写算法.. 如果您看到 javascript,有一个注释警报,我试图找出哪个元素给了我位置坐标,这就是我正在努力的地方跨度>
标签: javascript jquery css popup positioning