2012-11-04 19 views
6

Sto cercando di scaricare un'immagine quindi applicare una dissolvenza usando css background-image.
posso fare questo quando si tratta di un normale <img src=''/> in questo modo:
jQuery detect css background-image finish download

#mainImg {display:none} 

var c = $('#mainImg'); 
$(new Image()).load(function(){ 
    c.fadeIn(300); 
}).attr('src', c.attr('src')); 

Ma come faccio a rilevare quando si tratta di un css background?
Ecco CSS utilizzando jQuery, ma I cant sembrano per farlo come il codice di cui sopra e rilevare quando il download è finito

$('<img/>').attr('src', 'image.png').load(function() { 
    $('#mainImg').css('background-image', 'url(image.png)'); 
}); 

modificare questo ha aiutato! How can I check if a background image is loaded? ringraziamento @colin

+1

http://engineeredweb.com/blog/09/12/preloading-images-jquery-and-javascript/ – NickD

+0

possibile duplicato di [Come verificare se è stata caricata un'immagine di sfondo?] (Http: // stackoverflow .com/domande/5057990/come-can-i-check-se-a-background-image-viene-caricata) – hitautodestruct

risposta

1

ho fatto prima aggiungendo temporaneamente un'immagine figlio nascosto al div, quindi impostando backround del suo genitore e dissolvenza in apertura, quando l'evento carico l'immagine del bambino ha sparato. Meglio eliminare l'immagine del bambino in seguito, per mantenere le cose in ordine! Potresti semplicemente aggiungere l'immagine ovunque, ma questa era un'applicazione di mappatura e dovevo mantenere le immagini associate alle loro div parent!