2011-11-01 41 views
4

好吧我猜主题行解释了大部分内容,我仍然会详细阐述一下。好的这里是场景,如果元素位于页面底部,那么jQuery ContextMenu不会完全显示

我有一个元素树(元素名称从数据库中获得,所以可以从无到1000),创建的每个元素都带有contextMenu功能(即,您可以右键单击他们用4-5个动作查看上下文菜单)。现在,如果我在页面上下滚动,但似乎工作正常,但有些页面没有滚动条(根据项目的要求),因此如果我点击最底部的元素来查看contextMenu中的动作列表,所有我看到的是文本菜单的一半,剩下的一半就走出了浏览器窗口的边界(请参见下图),

enter image description here

我的问题是,有没有移动位置的方法contextMenu的内容,以便它始终保持在浏览器窗口的范围内。 期待您的回复和帮助,

亲切的问候,

rac3B3nn0n

+0

您是否通过自己创建了树和上下文菜单,或者您是否可以提供一些源代码链接? –

+0

我不确定你是否使用jQuery UI,但是它有一个位置实用工具,有一个碰撞偏移量可以保持视口内的物品:http://jqueryui.com/demos/position/ - 它可能/可能不适合你,但认为我会提到它。 – swatkins

+0

感谢曼努埃尔和斯瓦特金斯...... :) – rac3b3nn0n

回答

0

三江源所有,嗯,我已经想通了。其实这是我自己的错,为了解决IE6的位置错误,我改变了jquery.contextMenu.js中的一些代码,以不同的方式重新实现了,只是为我工作。

谢谢大家对你的帮助和努力

问候, rac3B3nn0n

+0

你能分享你改变的代码来解决这个问题吗?谢谢 – Minesh

3

我有同样的问题的一个非常大的上下文菜单(> 50种元素)。 我解决它,如下所示:

<style type="text/css"> 
    .limit-context-size { max-height: 300px; overflow-y: scroll; } 
</style> 
... 
$.contextMenu({ 
... 
    className: "limit-context-size", 
... 
}); 

这使得菜单垂直滚动。 300px是基于上下文菜单字体大小挑选的。