ボディをフェードアウトしてからフェードインする代わりに、画面全体をカバーするマスキングdivをフェードインし、ボディの背景画像を変更してから、マスキングdivをフェードアウトすることで、まったく同じ効果を得ることができます。このようなもの:
HTML-この行をHTMLの任意の場所に追加します
<div id="mask" style="position: absolute; top: 0; left: 0; background: black; display: none;"></div>
JavaScript
$('#mask').css({height: $(window).height(), width: $(window).width()})
.fadeIn('slow', function(){
$('body').css('background-image', 'url(Images/son_componentler/p2bg_cutted.png)');
$('#mask').fadeOut('slow');
});
ここで実際の例を参照してください
アップデート
私のプロジェクトの1つでは、すべてを黒にフェードしてから、元のコードが行ったのと同じ別の画像で元に戻したいと思っていました。コンテンツを表示したままにしたい場合は、あまり変更する必要はありません。画像の背景にdivを配置するだけです。次に、背景画像のみにマスキング手法を適用します。
HTML
<div id="img" style="position: absolute; z-index: -99; top: 0; left: 0;"></div>
<div id="mask" style="position: absolute; z-index: -98; top: 0; left: 0; background: white; display: none;"></div>
JavaScript
$('#mask').css({height: $(window).height(), width: $(window).width()})
.fadeIn('slow', function(){
$('#img').css('background-image', 'url(http://www.jsfiddle.net/img/logo.png)');
$('#mask').fadeOut('slow');
});
ここで実際の例を参照してください