而不是淡出身体然后淡入。您可以通过淡入覆盖整个屏幕的遮罩 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');
});
在此处查看一个工作示例
更新
在我的一个项目中,我想将所有内容都淡化为黑色,然后用我原始代码所做的不同图像返回。如果您想保持内容可见,则无需进行太多更改。只需在背景中有一个 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');
});
在此处查看一个工作示例