2012-03-08 13 views
0

はここに私が何を言っているかのJSのフィドルです:モーダルオーバーレイは絶対位置を必要としますか?

http://jsfiddle.net/r77K8/98/

私のオーバーレイは、リンクを無効にした外観を与えるが、リンクはまだクリック可能なまま。私は解決策を見いだすためにモーダルダイアログウィンドウのいくつかの例を見てきました。限り、私は絶対的な位置を使用する必要があると言うことができます。

実際には私のコンテンツには動的にデータが埋め込まれているので、私はこれを躊躇しています。オーバレイを正しい次元に保つためには、たくさんの追加作業が必要になると思われます。私は実際にどのようになっているのが本当に好きです。オーバレイが親である間にコントロールを解除できないようにしたいと思います。これは可能ですか?

+0

サンプルが正常に動作しているようです。 「オーバーレイを表示」リンクをクリックしてポップアップが表示されたら、ポップアップを閉じるまで、「オーバーレイを表示」をクリックすることはできません。 – Travesty3

+0

JSフィドルは私に間違ったリンクを与えました - それは私が見ていた例からのものです。一瞬。編集:それは今修正されました。それは本当に簡単な例です。 –

答えて

1

あなたの例では、オーバーレイdivの内側を無効にしようとしているコンテンツがあるようです。これを機能させるには、オーバーレイのdivをコンテンツの上に置く必要があります。そのため、コンテンツの後ろに配置してください。そうすれば、あなたのコンテンツ部門をカバーします。

はい、オーバーレイは親コンテナの右上隅に配置し、親コンテナ全体をカバーするように幅と高さを100%にするように絶対配置する必要があります。

たとえば、this jsfiddleを参照してください。


EDIT

代わりthis exampleを試してみてください。内容とオーバーレイをコンテナに入れてください。そうすれば、オーバーレイはページのその部分だけを占有します。

コンテナのdiv(divLink1divLink2)には、これが機能するにはposition:relativeが必要です。 this linkabsoluteの記述によれば、「要素は、その最初に配置された(静的ではない)祖先要素に対して配置されている」。したがって、コンテナをposition:relativeに設定する必要がありますが、実際には移動させないでください。

+0

はい、私は完全にそのコンセプトを理解しています。私が隠そうとしているコンテンツの複雑さ/場所のために、ちょっとイライラしています。コンテンツはAJAXの呼び出し後に展開/縮小できますが、展開後にコンテンツを復元しようとすると「追いつこう」ように見えるようになります。 –

+0

あなたのjsfiddleはリンクが無効に見えることはないことに注意してください。あなたはその機能を失いました。代わりに、リンクをクリックすることを無効にしますが、フェードアウトしませんが、不透明度の設定にすぎません。 –

+0

@SeanAnderson:更新された回答を参照してください。 – Travesty3