2011-11-01 39 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是基於上下文菜單字體大小挑選的。