预加载、懒加载

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>预加载</title>
		<style type="text/css">
			* {
				margin:0;
				padding: 0;
			}
			.load {
				width:100%;
				height:100%;
				position: fixed;
				left: 0;
				top: 0;
				background: rgba(0,0,0,0.3);
				display: flex;
				justify-content: center;
				align-items: center;
			}
			.load span {
				display: block;
				width:100px;
				height:100px;
				font-size:50px;
				color:#f60;
				text-align: center;
				line-height:100px;
				border-radius:50%;
				background:#fff;
			}
			.load span em {
				font-style: normal;
			}
		</style>
	</head>
	<body>
		<div class="load">
			<span><em id="num">0</em>%</span>
		</div>
		<img src="../images/1.jpg" >
		<img src="../images/2.jpg" >
		<img src="../images/3.jpg" >
		<img src="../images/4.jpg" >
	</body>
</html>
<script type="text/javascript">
	/*
	预加载:先让用户等待一会儿,一般结合进度条。此时加载项目中用到的所有请求耗时很多的资源,目的是提高用户体验。
	作用:通过预加载,可以实现用户在浏览网页的时候,所有的资源全部加载完毕
	
	预加载步骤
	1.写一个数组,里面存放想预加载的所有图片路径,该路径可以是网络路径,也可以是相对路径
	2.封装一个预加载函数
	
	*/
   // 需要预加载的图片
   var imgs = ['../images/1.jpg','../images/2.jpg','../images/3.jpg','../images/4.jpg','../images/1.jpg','../images/2.jpg','../images/3.jpg','../images/4.jpg','../images/1.jpg','../images/2.jpg','../images/3.jpg','../images/4.jpg','../images/1.jpg','../images/2.jpg','../images/3.jpg','../images/4.jpg'];
   //获取进图条的元素
   var num = document.getElementById("num");
   
   /*
   preload函数具有两个参数,第一个是存放资源的数组,第二个是回调函数
   回调函数就是当前操作完成以后,执行的函数,在此例中,回调函数可有可无
   */
   function preload(arr,callBack){
	   // 使用index来记录读取完毕的图片数量
	   var index = 0;
	   // 数组长度
	   var len = arr.length;
	   
	   for(var i=0;i<len;i++){
		   //创建一个image对象
		   // var img = new Image();
		   var img = document.createElement('img');
		   
		   //给img添加src
		   img.src = arr[i];
		   //监听图片对象加载完毕,触发load事件
		   
		   img.onload=function(){
			   index++;
			   num.innerHTML = Math.floor(index/len*100);
			   console.log(num.innerHTML);
			   //判断加载完毕的时候
			   if(index==len){
				   console.log('加载完毕');
				   //如果callBack存在,则执行该函数
				   callBack&&callBack();
			   }
		   };
	   }
	   
	   // loadedmetadata 该方法是用来加载音视频的
   }
   //调用预加载
   preload(imgs,function(){
	   var load = document.querySelector('.load');
	   load.style.display = 'none';
   });
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值