我在我的网站中创建了一个上下文菜单,它会在右键单击时显示。在那个上下文菜单中,我有一些子菜单将应用于菜单的正确位置。
现在的问题是,如果你调用页面右侧的上下文菜单,则没有足够的空间来显示子菜单,并且浏览器会添加一个水平滚动条。
如果浏览器中没有足够的空间,是否有任何 JavaScript 命令或者可以在 CSS 中更改子菜单的位置?
我在我的网站中创建了一个上下文菜单,它会在右键单击时显示。在那个上下文菜单中,我有一些子菜单将应用于菜单的正确位置。
现在的问题是,如果你调用页面右侧的上下文菜单,则没有足够的空间来显示子菜单,并且浏览器会添加一个水平滚动条。
如果浏览器中没有足够的空间,是否有任何 JavaScript 命令或者可以在 CSS 中更改子菜单的位置?
您可以在 JsBin 上找到您可以做什么的草稿
您可以轻松获得鼠标的位置并再次检查文档宽度。
为了简单起见,代码使用 jQuery。
$(document).mousemove(function(e){
var CONTEXT_MENU_WIDTH = 200,
pos = 'RIGHT';
if( ($(document).width() - CONTEXT_MENU_WIDTH) < e.pageX )
pos = 'LEFT';
$('#status').html(e.pageX +', '+ e.pageY);
$('#position span').html(pos);
});
已编辑
只是添加了一条简单的垂直线来帮助定位。
CONTEXT_MENU_WIDTH
变量应该是您希望上下文菜单更改位置的区域宽度。