Если вы хотите плавного перехода между фонами, это нельзя сделать, просто изменив background-image
с одного на другой.Вам нужно будет по крайней мере создать еще один элемент, который вы можете постепенно исчезать.Например, вот так:
var d = $('<div />').width($('body').width())
.height($(window).height())
.attr('id','fakebody').hide().appendTo($('body'));
$('nav').hover(function(){
$(d).fadeIn();
},function(){
$(d).fadeOut();
});
#fakebody{
position:absolute;
top:0;
left:0;
background: url(background.jpg);
z-index:-99;
}
Пример: http://jsfiddle.net/niklasvh/bXMKJ/
Если вы хотите, чтобы текущее изображение постепенно исчезало, а другое исчезало, вам понадобится 2 фиктивных элементапотому что вы не можете скрыть body
(по крайней мере, с ожидаемыми результатами).
Если вы просто хотите, чтобы background-image
менялся с одного на другой, вы можете исправить свой код с помощьюудаление ;
в конце функции мыши, например, так:
$('nav').mouseenter(function(){
$('body').css("background", "url('background-hover.jpg') no-repeat");
}).mouseleave(function(){
$('body').css("background", "url('background.jpg') no-repeat");
});
Пример: http://jsfiddle.net/niklasvh/sC5rd/