-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpageLoad.js
59 lines (54 loc) · 1.33 KB
/
pageLoad.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*
* @页面加载预处理插件
* @des 只兼容移动端 只根据img个数计算加载百分比(未计算link script 等资源)
*/
(function(){
//加载百分比
var sum = 0,
//获取页面中所有img
imgs = document.getElementsByTagName('img'),
//遮罩层
box = document.getElementById('loadMash'),
//显示百分比的节点
numbox = document.getElementById('loadMashNum'),
//计算每加载完一项所增加的百分比数值
singleNum = 100 / (imgs.length);
//imgs绑定onload
for(var i=0; i<imgs.length; i++){
(function(_i){
if(imgs[_i].complete){
callback('img', _i);
}else{
bind(imgs[_i], 'load', function(){
callback('img', _i);
});
}
})(i);
}
//N秒之后 隐藏遮罩层
setTimeout(function(){
box.style.display = 'none';
}, 15*1000);
//单项加载完执行的回调
function callback(type, idx){
sum += singleNum;
numbox.innerHTML = parseInt(sum, 10);
if(parseInt(sum, 10) >= 99){
numbox.innerHTML = 100;
setTimeout(function(){
box.style.display = 'none';
}, 50);
}
}
//所有资源加载完隐藏遮罩层
// bind(window, 'load', function(){
// numbox.innerHTML = 100;
// setTimeout(function(){
// box.style.display = 'none';
// }, 50);
// });
//绑定事件函数
function bind(obj, type, fn){
obj.addEventListener(type, fn, false);
}
})();