【发布时间】:2011-03-29 08:52:49
【问题描述】:
我在 javascript 中为表格开发了一个右键单击上下文菜单。上下文菜单的位置位于表格每一行的光标下方。表格的最后一行位于页面末尾,现在右键单击行上下文菜单正在下降,但它应该显示在光标上。请提供任何帮助
function ContextShow(event) {
event = event || window.event;
var m = getMousePosition(event);
var s = getScrollPosition(event);
var client_height = document.body.clientHeight;
var display_context = document.getElementById('context_menu');
if(replaceContext){
display_context.style.display = "block";
display_context.style.left = m.x + s.x + "px";
display_context.style.top = m.y + s.y + "px";
replaceContext = false;
}}
function getMousePosition (e){
e = e || window.event;
var position = {
'x' : e.clientX,
'y' : e.clientY
}
return position;}
function getScrollPosition(){
var x = 0;
var y = 0;
if( typeof( window.pageYOffset ) == 'number' ) {
x = window.pageXOffset;
y = window.pageYOffset;
} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
x = document.documentElement.scrollLeft;
y = document.documentElement.scrollTop;
} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
x = document.body.scrollLeft;
y = document.body.scrollTop;
}
var position = {
'x' : x,
'y' : y
}
return position;
}
这里,contextShow 将使用 getMousePosition(event); 根据鼠标位置显示右键单击的上下文菜单;和 getScrollPosition(event);
【问题讨论】:
标签: javascript right-click contextmenu