utilizzare il metodo load()
(docs) contro il window
.
$(window).load(function() {
// this will fire after the entire page is loaded, including images
});
Oppure basta farlo direttamente tramite window.onload
.
window.onload = function() {
// this will fire after the entire page is loaded, including images
};
Se si desidera un evento separato al fuoco per ogni immagine, posizionare un .load()
su ogni immagine.
$(function() {
$('img').one('load',function() {
// fire when image loads
});
});
O se c'è una possibilità di un'immagine può essere memorizzata nella cache, fare questo:
$(function() {
function imageLoaded() {
// function to invoke for loaded image
}
$('img').each(function() {
if(this.complete) {
imageLoaded.call(this);
} else {
$(this).one('load', imageLoaded);
}
});
});
EDIT:
Al fine di eseguire alcune azioni dopo il caricamento ultima immagine , utilizzare un contatore impostato sul numero totale di immagini e decrementare ogni volta che viene richiamato un gestore di carico.
Quando raggiunge 0
, eseguire un altro codice.
$(function() {
function imageLoaded() {
// function to invoke for loaded image
// decrement the counter
counter--;
if(counter === 0) {
// counter is 0 which means the last
// one loaded, so do something else
}
}
var images = $('img');
var counter = images.length; // initialize the counter
images.each(function() {
if(this.complete) {
imageLoaded.call(this);
} else {
$(this).one('load', imageLoaded);
}
});
});
possibile duplicato di [evento jQuery per immagini caricate] (http://stackoverflow.com/questions/910727/jquery-event-for-images-loaded) – Yarin