背景画像の不透明度をアニメーション化することはできません。不可能です。回避策は<img>
、共有内に配置することparent container
です<div id="2">
シナリオ->
<div id="1">
div 1
</div>
<div id="wrapper">
<img src="path/to/my/background/image"/>
<div id="2">
</div>
</div>
相対的なcss->
#wrapper{
position:relative;
}
#wrapper img{
position:absolute;
top:0;
left:0;
z-index:-1
}
#wrapper #div2{
display:block;
height: // this value should be the same as the background images size.
width: // this value should be the same as the background images size.
}
jQuery->
$('#div1').hover(function(){
$('#wrapper img').fadeOut('slow', function(){
//this is the callback function of fadeout, now change the background image URL.
$(this).css('background-image', 'location/to/my/new/image.ext');
var checkForDelay = setTimeout(function(){
//if they haven't moused out after 3 seconds, then show them the new background.
$('#wrapper img').fadeIn('slow');
}, 3000);
});
}, function(){
clearTimeout(checkForDelay);
$('#wrapper img').fadeIn('slow');
});
同様のプリンシパルの概要を示すjsFiddle