2016-03-30 5 views
0

ここに興味深い状況があります。 1つは私が少し悩まされています。このページにはダイナミックな横向きのギャラリーリストがあり、オプションの1つに歯車アイコンがクリックされたときに表示されるアクションメニュー(下の画像)があります。しかし、最後のアイテムのポップアップは画面の端に向かい、実際には読み込みができません(エッジが途切れ、リンクが2番目のラインに壊れています)。最後のdivを選択してフライアウトの位置を変更したいのですが、メニューがダイナミックでJSが既に配置されている(他のスクリーンショットが添付されている)場合は、フライアウトの位置を変更したいと思います。これが十分な情報であることを願っています。下のコードスニペット。このメニューenter image description hereもテーブルビューと共有します。私はjQueryのposition()を使用して要素の位置を取得し、それがjQueryのwidth()と幅だなるだろうギャラリービューの一連の動的div内の最後のフライアウト(動的)の位置をJqueryで変更する方法

enter image description here

enter image description here

$galleryCont.on('mouseover','.galleryItem',function(e){ 
    $(this).find('.orderActionsLink').show(); 

    }).on('mouseout','.galleryItem',function(e){ 
       $(this).find('.orderActionsLink').hide(); 
    }); 

     //Hides Actions Menu on scroll 
      $galleryCont.scroll(function() { 
      $('.actionsTableCont').hide(); 
    }); 
+1

メニューが最後の列のときは常に 'transform:translateX(-100%)'をメニューに適用できます。それは、その幅で左にシフトします –

答えて

1

ありがとうございます。

これらの値から、要素の右端がページ外にあるかどうか(ビューポートの幅を超えているかどうか)を計算できます。はいの場合は、divの位置を右の代わりに歯車アイコンの左側に移動します。

これは、要素のビューポートエッジへの近接性に応じて、ツールヒントライブラリが左、右、上、または下にツールチップを表示するのに賢い方法に似ています。

+0

ありがとう、私はこれまで多くの運を持っていないが、私は試し続けます。 – erics15

+0

もう一つのアイデアは、最後のボックスにクラスを追加してから、そのメニューを右ではなく左に配置するためにcssを使用することです。 – Drew

関連する問題