当我使用代码点击按钮时,我试图让页面淡出:
$("#post_btn").click(function(){
$("#address-popup").css({display: "block"});
$("html,body").fadeTo("slow",0.4);
});
问题是我不希望div #address-popup
也褪色。有没有办法可以将其从html,body
淡出中排除?
答案 0 :(得分:5)
你这是错误的方式。看起来暗淡背景的弹出窗口通常附加一个半透明的叠加div,对话框位于其上方。覆盖div部分遮盖了页面;页面本身并没有实际淡出。
答案 1 :(得分:1)
您不能拥有隐藏父级的可见子级。 你需要的是将弹出窗口附加到你的身体元素,然后淡出身体内的所有其他元素。
<强> 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);
});
答案 2 :(得分:1)
我在这里测试了一个解决方案并且有效...
$("#post_btn").click(function(){
$("body :not(#address-popup)").fadeTo("slow",0.4);
});
效果很好......
答案 3 :(得分:0)
我认为你最好通过覆盖<div>
并赋予其透明度来创造衰落背景的“错觉”。将此<div>
一个z-index
高于页面内容的其余部分。
然后,为了增加位于淡化页面上方的其他#address-popup
div的幻觉,只需确保它比透明z-indez
更高<div>
。
答案 4 :(得分:0)
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();
}
});