<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>图片延迟加载</title>

<style type="text/css">

*{

margin: 0;

padding: 0;

}

img{

width: 300px;

height: 300px;

border: 1px solid #CCCCCC;

position: absolute;

left: 300px;

}

img:nth-of-type(1){

 

 

top: 400px;

 

}

img:nth-of-type(2){

top: 2400px;

}

img:nth-of-type(3){

 

 

top: 5000px;

 

}

img:nth-of-type(4){

top: 6400px;

}

img:nth-of-type(5){

top: 7400px;

}

 

</style>

</head>

<body style="height: 8000px;">

<!--datasrc 是自定义的属性-->

<img datasrc="img/dog.jpg"/>

<img datasrc="img/dog1.jpg"/>

<img datasrc="img/dog2.jpg"/>

<img datasrc="img/dog4.jpg"/>

<img datasrc="img/dog5.jpg"/>

</body>

</html>

<script type="text/javascript">

// 图片延迟加载: 也叫图片懒加载;如果图片没有在可视区域之内,不进行加载图片,什么时候图片进入可视区域才开始加载.

// 这样做得好处,可以节省流量,还可以节省内存.(在某段时间内)

 

//获取所有的图片标签

var  imgsArray  = document.querySelectorAll('img');

//这个函数查看哪个图片正在可视区域之内.

function showImg(){

//遍历所有的图片,看看哪个在可视区域

for(var i = 0 ; i < imgsArray.length;i++){

//计算可视区域的高度 + 滑动区域的高度

var sumHeight = document.documentElement.clientHeight + document.documentElement.scrollTop +document.body.scrollTop;

if(imgsArray[i].offsetTop <= sumHeight - 300 && imgsArray[i].src ==''){

//显示这个图片

imgsArray[i].src = imgsArray[i].getAttribute("datasrc");

}

}

}

showImg();

window.onscroll = function(){

showImg();

}

</script>

posted on 2016-11-05 20:33  BlindingSunlight  阅读(153)  评论(0编辑  收藏  举报