1

わかりました、既存のページに、開閉を切り替えるボタンの上/下に表示される要素となる要素を追加しようとしています。この要素トリガーは、追加先のページのいくつかのコンポーネントに追加されます。ほとんどの場合、トリガー要素の下で開いたときに要素を表示しても問題ありません。でも。開いたときに要素がページのビューの下にドロップするケースがいくつかあるはずです。たとえば、ユーザーが要素のオープニングを補うために完全に下にスクロールしなかったとしましょう (なぜそうするのですか) 使いやすさのためにユーザーに対して、この要素が表示ペインから外れて、上に開くトリガーの下に開くのではなく、UI を変更して、トリガーが開いたボックスにグラフィカルに接続するようにする必要があります。素敵な流動的な外観、とにかくその部分は無関係です、それはちょっとした視覚的な魔法です. 開いたときに要素がポートの外側にあるかどうかを判断し、そうである場合はトリガーの上にロードします。

今、明白なことを避けるために。"あなたは何をした"。まあ何もない。要素を下に並べるのは簡単です。以前は、トリガーの位置を取得し、トリガーの位置に基づいて一致するように要素を下に並べていました。そのため、数ピクセルでもポートから外れてトリガーの上にロードされる場合の処理​​方法の問題を整理しようとしています。そのようなことをどのように補うかが重要な問題です。私が従うことができる特定のテクニックはありますか、これを行うときに考えるべき「魔法」は何ですか?

4

2 に答える 2

2

jQuery を使用すると、ハンドラーを.scroll()ドキュメントの にアタッチできます。

eventそのイベントを使用すると、訪問者がプロパティにアクセスして何を見ているかを常に知ることができ.pageX.pageY

.offset()これで、クリックした要素の位置と高さがわかりました。

ウィンドウ オブジェクトと表示する要素の高さを取得することもできます。

あとは計算の問題です..

幸運を

于 2012-10-19T20:20:52.317 に答える
0

この問題に対する私のアプローチは次のようになります。

  1. トリガーと展開/折りたたみ要素のコンテナーを追加し、コンテナーを次のようにoverflow:visible;スタイルします。position:relative;
  2. 次に(明らかに)展開要素を次のようにスタイルしますposition:absolute
  3. 画面に対するトリガー要素の位置に応じて、エキスパンド要素の left プロパティと top プロパティを設定して、トリガーの上または下に配置します。
于 2012-10-19T20:05:08.427 に答える