ページの読み込み時に特定のクラスを除いて、ページ全体の不透明度をフェードアウトしたい。(タイマー)
現在のコードに微調整できます。
フェードしたくない要素が本体の直接の子孫である場合は、1 行で行うことができます。
$("body").find(":not(.nofade)").fadeOut().fadeIn(); // fade out/in all but class "nofade"
デモ: http://jsfiddle.net/Be2m5/
(明らかに、必要に応じて独自のアニメーション メソッドに置き換えることができます。)
フェードしたくない要素が他の要素の子孫である場合、親要素がフェードすると子も一緒に連れて行くため、どのように機能させるかわかりません...
EDIT:これについてもっと良い方法があることに気づきました:要素をフェードインおよびフェードアウトするのではなく、ページ全体に単一の空白(白い背景)の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>
あなたはこのようなことを試すことができます
<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>
2つのdivコンテナ。1つ目はページの読み込み時に非表示になり、2つ目は表示になります。