2011-04-26 21 views

回答

2

我寫了一個jQuery plugin註冊圖像加載回調。

你會使用它是這樣的...

var loading = $('<div id="loading" />').appendTo('body'); 

$('body').waitForImages(function() { 
    loading.remove(); 
}, function(loaded, all) { 
    loading.html(((loaded/all) * 100) + '% loaded'); 
}); 

jsFiddle

+0

@alexGood one !!!!!!!!! – Gopesh 2012-09-26 12:27:05

+0

'負載'事件是[棄用](http://api.jquery.com/load-event/)。 – yckart 2013-01-22 13:56:36

+0

@yckart不推薦使用'load()'方法。如果事件本身被棄用,它會從W3C下來。 – alex 2013-01-22 21:52:50

0
var preload = function (images, callback) { 
    var count = 0; 
    for (var i = 0, len = images.length; i < len; i++) { 
     var img = new Image(); 
     img.src = images[i]; 
     img.onload = function() { 
      var perc = ++count * (100/len) | 0; 
      if (callback) callback.call(this, perc, perc === 100); 
     }; 
    } 
}; 

的用法很簡單:

preload(['http://lorempixel.com/800/600'], function(perc, done) { 
    console.log(perc); 
    if(done) console.log('Done!'); 
    // `this` refers to each loaded image. 
});