2012-03-02 5 views
1

Как можно добавить fadeIn(); эффект изменения фонового изображения на клик? Текущий код ниже работает, но без эффекта затухания.fadeIn effect to background image

HTML

<div class="background"></div> 

CSS

.background {position:absolute;top:0;right:0;bottom:0;left:0;background-repeat:repeat;background-position:center top;background-image:url(images/skins/BiblesandCommentaries.jpg);} 

JS

$('.selector').click(function() { 
    $('.background').css({'background-image':'url(images/skins/'+$(this).attr('href').replace('#', '') +'.jpg'+')'}); 
}); 

ответ

4

Для более плавного воспроизведения это поможет предварительно загрузить изображение, а затем сменить фоновое изображение. Here's the below script on jsFiddle, с небольшим изменением для размещения источника изображения:

$('.selector').click(function() { 
    var img = document.createElement('img'); 
    img.src = 'images/skins/'+$(this).attr('href').replace('#', '') +'.jpg'; 
    img.onload = function() { 
     $('.background').fadeOut(function() { 
      $(this).css({'background-image':'url('+img.src+')'}).fadeIn(); 
     }); 
    }; 
    return false; 
});​ 
+0

это не выгорает – Blainer

+0

Я обновил пример для вас с более подходящим решением. – Mathachew

1

текущий CSS для фона может быть установлен в

.background { 
    visibility:hidden; 
} 


$('.selector').click(function() { 
    $('.background').css(....).fadeIn(); 
}); 
+0

это не выгорает – Blainer