2

Webサイトにコンテキストメニューを作成しました。これは、右クリックで表示されます。そのコンテキストメニューには、メニューの右側のサイトに適用されるいくつかのサブメニューがあります。

問題は、ページの右側にあるコンテキストメニューを呼び出すと、サブメニューを表示するのに十分なスペースが残っておらず、ブラウザが水平スクロールバーを追加することです。

ブラウザに十分なスペースが残っていない場合に、CSSのサブメニューの位置を変更できるJavaScriptコマンドまたはその他のコマンドはありますか?

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 に答える