ポップアップ(divを使用)がある場合、divの外のどこかをクリックしたときにdivを隠し状態に戻すにはどうすればいいですか?ポップアップがポップアップエリアの外をクリックしたときに非表示に戻る
ポップアップが表示されている場合、誰かがポップアップの外側をクリックすると、divは再び非表示になります。
どうすればこの機能を実現できますか?
ポップアップ(divを使用)がある場合、divの外のどこかをクリックしたときにdivを隠し状態に戻すにはどうすればいいですか?ポップアップがポップアップエリアの外をクリックしたときに非表示に戻る
ポップアップが表示されている場合、誰かがポップアップの外側をクリックすると、divは再び非表示になります。
どうすればこの機能を実現できますか?
これを行う一般的な方法は、オーバーレイを使用する方法です。あなたも、画面全体を占め、すぐその下<div id="overlay">
を作成し、あなたのdiv
ポップアップを作成する場合:
div#overlay {
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
必要に応じて、あなたは、例えば、background: #000
とopacity: 0.5
で他のすべてのコンテンツを暗くするために、このオーバーレイを使用することができます。
ポップアップのすぐ下にこのオーバーレイを追加するようにJavaScriptを作成したら、それにクリックリスナーを追加します。ユーザーがオーバーレイをクリックすると、ポップアップの外側をクリックしたことがわかります。
古いブラウザーではposition: fixed
は機能しません。 1つの回避策は、オーバーレイが表示されているときにオーバーレイをposition: absolute
に設定し、ユーザーがスクロールしないように<body>
に一時的にoverflow: hidden
を追加することです。私にまっすぐ進むより多くのようだ、それを行うための
別の方法は、この次のとおりです。要するに
$("body").click(function (event) {
var outside = $(event.originalTarget).parents("#popup").length === 0;
if (outside) {
$("#popup").remove();
$("body").unbind("click");
}
});
、originalTargetは、実際にクリックされたもので、#popupのいずれかである場合、スクリプトは、チェックしますその祖先(jQueryのparents
と呼ばれます)。そうでない場合は、クリックが外にあり、ポップアップを削除します。
iframeを使用している場合、これは動作しません。 – laktak
ああ、そうですね、それは人々がそれを行う方法です。基本的にyoruポップアップが表示されているときに、外側のdiv(オーバーレイ)に属性を追加して灰色にし、クリックイベントをattach ...bingo!ありがとう –