1 <script> 2 function loading() { 3 4 function Load() {} 5 6 Load.prototype.loadImgs = function(urls, callback) { 7 this.urls = urls; 8 this.imgNumbers = urls.length; 9 this.loadImgNumbers = 0; 10 var that = this; 11 for(var i = 0; i < urls.length; i++) { 12 var obj = new Image(); 13 obj.src = urls[i]; 14 obj.onload = function() { 15 that.loadImgNumbers++; 16 callback(parseInt((that.loadImgNumbers / that.imgNumbers) * 100)); 17 } 18 } 19 }; 20 21 var loader = new Load(); 22 23 loader.loadImgs([ 24 // 將所有需要加載的圖片地址寫於此處 25 "img/about1.jpg", 26 "img/about2.jpg", 27 ], function(percent) { 28 // 假設顯示百分比的元素為 $(".percent") 29 $(".percent").text(percent + '%'); 30 31 // 加載結束后,隱藏相應的 loading 或遮罩 32 if(percent == 100) { 33 $(".mask").css('display', 'none'); 34 } 35 }); 36 } 37 // 執行 loading 方法 38 loading(); 39 </script>
移動端的案例等經常有加載前有一個百分比的進度條的顯示,這種方法便可以實現,並且同時將圖片做了預加載。