我们首先来看看要实现的效果图
代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{margin: 0;padding: 0;}
div{width:200px;height: 30px;border:1px solid #ccc;margin: 50px auto;}
span{display:inline-block;height: 30px;background: #abcdef;}
</style>
</head>
<body>
<div>
<span id="loading"></span>
</div>
<!-- 图片需要自己添加到本地 协议要走http or https -->
<script>
var img_arr = ['1.jpg','2.jpg','3.png'];
var nums = img_arr.length;
var start = 0;
for(var i in img_arr){
var img = document.createElement('img');
img.src = img_arr[i];
(function(j){
img.onload = function(){
start++;
if(start == nums){
console.log('全部加载完成');
}
document.getElementById('loading').style.width = (start/nums)*100 + '%';
};
img.onerror = function(){
start++;
console.log(img_arr[j] + '失败');
document.getElementById('loading').style.width = (start/nums)*100 + '%';
}
})(i);
}
</script>
</body>
</html>
有些情况下,资源会加载失败,但是页面又需要显示出来。这里我是把失败的情况就跳过了,如果有需要,可以考虑重新换资源加载
注意事项
1、测试的时候,需要把文件放到服务器上,走本地的file协议是看不到效果的
2、测试的时候,可以把网络设置为2g或者3g,可以方便看到加载的进度,然后禁止使用缓存
拓展
这里只监听了img格式,如果有需要,可以把js和css都加进来
注意:监听js或者css,需要把创建的资源追加到页面中,要不然监听不到onload和onerror事件
<script>
var script_arr = ['http://cdn.bootcss.com/jquery/3.1.0/jquery.slim.js','http://cdn.bootcss.com/jquery/3.0.0-rc1/jquery.js','http://cdn.bootcss.com/jquery/3.0.0-beta1/jquery.slim.min.js'];
var nums = script_arr.length;
var start = 0;
for(var i in script_arr){
var script = document.createElement('script');
script.src = script_arr[i];
(function(j){
document.body.appendChild(script);
script.onload = function(){
start++;
if(start == nums){
console.log('全部加载完成');
}
document.getElementById('loading').style.width = (start/nums)*100 + '%';
};
script.onerror = function(){
start++;
console.log(srcript_arr[j] + '失败');
document.getElementById('loading').style.width = (start/nums)*100 + '%';
}
})(i);
}
</script>
总结
以上就是这篇文章的全部内容了,本文实现的这个功能还是很实用的,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以交流。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。


