图片延迟加载
2017-08-28 08:43
162 查看
当页面中图片数量很多的时候,如果要求页面加载完成的时候将图片全部显示出来,那么会让用户觉得“网速好渣/网页好渣”,于是,
使得尚未出现在用户视区的图片暂时隐藏起来减少页面一开始的加载时间不为是一种好办法
原生js:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div style="height:1290px;width:800px;border:1px;background:gray;"></div>
<div style="height:150px;width:800px;border:1px;background:green;"></div>
<!--<img class="lazy" alt="img/award.jpg" />-->
<div style="height:1290px;width:800px;border:1px;background:gray;"></div>
<img class="lazy" alt="img/header-background.jpg"/>
<script type="text/javascript"><!--
var temp = -1;//用来判断是否是向下滚动(向上滚动就不需要判断延迟加载图片了)
window.onscroll = function() { //当发生滚动时
var imgElements = document.getElementsByTagName("img");
var lazyImgArr = new Array();
var j = 0;
for(var i=0; i<imgElements.length; i++) {
if(imgElements[i].className == "lazy"){
lazyImgArr[j++] = imgElements[i];
}
}
var scrollHeight = document.body.scrollTop;//滚动的高度
var bodyHeight = document.body.offsetHeight;//body(页面)可见区域的总高度,可见部分就是刨去那些隐藏起来的部分
// var bodyHeight = document.body.scrollHeight;//body整个页面的高度(全文的高度)
// var bodyHeight = window.innerHeight;//窗口的高度
console.log(bodyHeight);
if(temp < scrollHeight) {//为true表示是向下滚动,否则是向上滚动,不需要执行动作。
for(var k=0; k<lazyImgArr.length; k++) {
var imgTop = lazyImgArr[k].offsetTop;//图片距离页面顶端的高度
console.log(imgTop);
if((imgTop - scrollHeight) <= bodyHeight) {
lazyImgArr[k].src = lazyImgArr[k].alt;
lazyImgArr[k].className = "notlazy"
}
}
temp = scrollHeight;
}
};
</script>
</body>
</html>
使得尚未出现在用户视区的图片暂时隐藏起来减少页面一开始的加载时间不为是一种好办法
原生js:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div style="height:1290px;width:800px;border:1px;background:gray;"></div>
<div style="height:150px;width:800px;border:1px;background:green;"></div>
<!--<img class="lazy" alt="img/award.jpg" />-->
<div style="height:1290px;width:800px;border:1px;background:gray;"></div>
<img class="lazy" alt="img/header-background.jpg"/>
<script type="text/javascript"><!--
var temp = -1;//用来判断是否是向下滚动(向上滚动就不需要判断延迟加载图片了)
window.onscroll = function() { //当发生滚动时
var imgElements = document.getElementsByTagName("img");
var lazyImgArr = new Array();
var j = 0;
for(var i=0; i<imgElements.length; i++) {
if(imgElements[i].className == "lazy"){
lazyImgArr[j++] = imgElements[i];
}
}
var scrollHeight = document.body.scrollTop;//滚动的高度
var bodyHeight = document.body.offsetHeight;//body(页面)可见区域的总高度,可见部分就是刨去那些隐藏起来的部分
// var bodyHeight = document.body.scrollHeight;//body整个页面的高度(全文的高度)
// var bodyHeight = window.innerHeight;//窗口的高度
console.log(bodyHeight);
if(temp < scrollHeight) {//为true表示是向下滚动,否则是向上滚动,不需要执行动作。
for(var k=0; k<lazyImgArr.length; k++) {
var imgTop = lazyImgArr[k].offsetTop;//图片距离页面顶端的高度
console.log(imgTop);
if((imgTop - scrollHeight) <= bodyHeight) {
lazyImgArr[k].src = lazyImgArr[k].alt;
lazyImgArr[k].className = "notlazy"
}
}
temp = scrollHeight;
}
};
</script>
</body>
</html>
相关文章推荐
- jquery.lazyload 实现图片延迟加载jquery插件
- Jquery.ScrollLoading图片延迟加载技术
- (转)jQuery插件:Image lazy loader图片延迟加载
- 使用jquery的lazy loader插件实现图片的延迟加载
- [資料]网络图片延迟加载实现
- 转:图片延迟加载(lazyload)的实现原理
- 解决在UIWebView中加载图片时出现延迟现象的做法
- jQuery图片延迟加载插件jQuery.lazyload
- 原生Js页面滚动延迟加载图片实现原理及过程
- 【web前端优化之图片延迟加载初探】中午不睡,下午崩溃
- jquery插件实现图片延迟加载(lazyload.js)
- 转:jquery延迟加载图片
- js图片延迟加载
- 前端性能优化之 —— 图片延迟加载 (原理以及实现方式)
- JavaScript——图片延迟加载技术(ImageLazyLoad)
- JQuery 图片延迟加载并等比缩放插件
- Lazy Load, 延迟加载图片的 jQuery 插件
- 浅谈tudou土豆网首页图片延迟加载的效果
- 前端图片延迟加载详细讲解
- 土豆首页图片延迟加载的效果