我想淡出整个页面的不透明度,然后除了页面加载时的某个类。(计时器)
我将能够将其调整到我当前的代码中。
如果您不想淡出的元素是 body 的直接后代,那么您可以在一行中完成:
$("body").find(":not(.nofade)").fadeOut().fadeIn(); // fade out/in all but class "nofade"
演示:http: //jsfiddle.net/Be2m5/
(显然,您可以根据需要替换自己的动画方法。)
如果您不想淡出的元素是其他元素的后代,我不确定您是如何使其工作的,因为当父元素淡出时,它们会带走他们的孩子......
编辑:我想到有一种更好的方法来解决这个问题:与其淡入淡出元素,不如在整个页面上放置一个空白(白色背景)div,然后淡入以覆盖所有其他元素,除了对于“.nofade”。给“.nofade”元素一个高于z-index
空白 div 的值:
<style>
.cover {
position : absolute;
top : 0px; bottom : 0px; left : 0px; right : 0px;
background-color: white;
z-index: 1;
opacity : 0;
}
.nofade {
position: relative;
z-index: 2;
}
</style>
<script>
$(document).ready(function() {
$("<div/>").addClass("cover")
.appendTo("body")
.animate({opacity:1}, 1000).delay(300)
.animate({opacity:0}, 1000, function() { $(this).remove(); });
});
</script>
演示:http: //jsbin.com/ucofuz/2/edit#preview
你可以试试这样的
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#content-wrapperHide').fadeOut(1000);
$('#content-wrapperShow').fadeIn(1000);
});
</script>
<style type="text/css">
#content-wrapperShow
{
display: none;
}
</style>
</head>
<body>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
document.write( '<div id="content-wrapperHide">' );
//--><!]]>
</script>
Hide on load
<script type="text/javascript">
<!--//--><![CDATA[//><!--
document.write( '</div><!-- content-wrapperHide -->' );
//--><!]]>
</script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
document.write( '<div id="content-wrapperShow">' );
//--><!]]>
</script>
Show on load
<script type="text/javascript">
<!--//--><![CDATA[//><!--
document.write( '</div><!-- content-wrapperShow -->' );
//--><!]]>
</script>
</body>
</html>
两个 div 容器。首先是隐藏页面加载,其次是显示。