2

我在我的网站中创建了一个上下文菜单,它会在右键单击时显示。在那个上下文菜单中,我有一些子菜单将应用于菜单的正确位置。

现在的问题是,如果你调用页面右侧的上下文菜单,则没有足够的空间来显示子菜单,并且浏览器会添加一个水平滚动条。

如果浏览器中没有足够的空间,是否有任何 JavaScript 命令或者可以在 CSS 中更改子菜单的位置?

4

1 回答 1

1

您可以在 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变量应该是您希望上下文菜单更改位置的区域宽度。

于 2012-05-05T13:09:47.010 回答