私は meagar に同意します (コメントが受け入れられるように、彼のコメントを回答にする必要があります!) が、オーバーレイ div を常に存在させたくない (ただし非表示にする) 場合は、その場で追加できることも付け加えます。代わりは:
$('#search').ajaxStart(function() {
$('#content').wrap('<div class="overlay" />');
});
(#content
たまたまコンテンツ ラッパーと呼んでいたものを表し、.overlay
たまたま私が選んだ名前です。簡単に変更できます!)
Ajax の完全なコールバックが発生するたびに (これは.hide()
megar の提案で使用される場所でもあります)、次のように再度アンラップします。
$('#content').unwrap();
残りはCSSです。
.overlay {
position: relative;
height: 100%;
width: 100%;
background-color: rgba(0,0,0,0.7);
}
ページにすでにあるものによっては、実際にはこれが適切な CSS アプローチではない可能性があることに注意してください。基本的な考え方は、コンテンツ領域だけに広げたいというものですが、落とし穴があります! フロート、いくつかのものの絶対配置...すべてが共謀して、オーバーレイがコンテンツ領域だけをカバーしないようにします。あなたがその問題に遭遇した場合、それは別のSOの質問です。;-)
JSFiddle: http://jsfiddle.net/Ff5wV/