コードを使用してボタンをクリックするとページがフェードアウトするようにしようとしています:
$("#post_btn").click(function(){
$("#address-popup").css({display: "block"});
$("html,body").fadeTo("slow",0.4);
});
#address-popup
問題は、divもフェードさせたくないということです。html,body
これをフェードから除外する方法はありますか?
いいえ、できません。ドキュメント全体をフェードすることはできませんが、ドキュメント内の一部の要素をフェードすることはできません。
あなたはこれについて間違った方法で進んでいます。背景をぼかすように見えるポップアップは、通常、ダイアログがその上にある半透明のオーバーレイ div を追加します。ページを部分的に隠しているのはオーバーレイ div です。ページ自体は実際にはフェードアウトしません。
非表示の親の可視の子を持つことはできません。必要なのは、ポップアップを body 要素に追加してから、body 内の他のすべての要素をフェードアウトすることです。
HTML:
<body>
<div class="header">
</div>
<div class="content">
</div>
<div class="footer">
</div>
<div class="popup">
</div>
</body
JS:
$("#post_btn").click(function(){
$("body > div:not(.popup)").fadeTo("slow",0.4);
});
HTML
<div class="blind"></div>
<div class="topDiv">
<h1>Popup Effect DIV</h1>
<p>This DIV will still display when the rest of the page has been faded out</p>
</div>
<a class="fadeOut">Load Popup.</a>
CSS
.blind {
position: absolute;
top: 0px;
left: 0px;
background-color: #FFF;
width: 100%;
height: 100%;
z-index: 2000;
opacity: 0.9;
filter: alpha( opacity = 90 );
display: none;
}
.topDiv {
display: none;
width: 250px;
height: 250px;
border: solid 1px red;
background-color: #FFF;
z-index: 2000;
position: absolute;
top: 50px;
left: 250px;
}
JS
/* Load Popup and fade background */
$('.fadeOut').click(function(e){
$('.blind').toggle();
$('.topDiv').toggle();
});
/* Close popup and loose fade when you click outside the popup */
$(document).mouseup(function (e){
var container = $('.topDiv');
if (!container.is(e.target) && container.has(e.target).length === 0){
container.hide();
$('.blind').hide();
}
});
<div>
を重ねて透明にすることで、背景が薄くなる「錯覚」を作ったほうがいいと思います。これ<div>
をz-index
ページの他のコンテンツよりも高くします。
#address-popup
次に、色あせたページの上に他の div が置かれているような錯覚を起こすにはz-indez
、transparentよりも高い<div>
.