因为
网页加载太慢,想着减少页面卡顿,就开始想让用户看到哪加载到哪,直接上代码了:
```
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="https://cdn.bootcss.com/jquery/2.1.0/jquery.min.js"></script>
<style>
.container {
max-width: 800px;
margin: 0 auto;
}
.container:after {
content: "";
display: block;
clear: both;
}
.container img {
width: 50%;
height: 200px;
float: left;
}
</style>
</head>
<body>
<div class="container">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
<img src="img/jiazai1.jpg" alt="1" data-src="img/timg.jpg">
</div>
<script>
// 一开始没有滚动的时候,出现在视窗中的图片也会加载
start();
// 当页面开始滚动的时候,遍历图片,如果图片出现在视窗中,就加载图片
var clock; //函数节流
$(window).on('scroll', function() {
if (clock) {
clearTimeout(clock);
}
clock = setTimeout(function() {
start()
}, 200)
})
function start() {
$('.container img').not('[data-isLoading]').each(function() {
if (isShow($(this))) {
loadImg($(this));
}
})
}
// 判断图片是否出现在视窗的函数
function isShow($node) {
return $node.offset().top <= $(window).height() + $(window).scrollTop();
}
// 加载图片的函数,就是把自定义属性data-src 存储的真正的图片地址,赋值给src
function loadImg($img) {
$img.attr('src', $img.attr('data-src'));
// 已经加载的图片,我给它设置一个属性,值为1,作为标识
// 弄这个的初衷是因为,每次滚动的时候,所有的图片都会遍历一遍,这样有点浪费,所以做个标识,滚动的时候只遍历哪些还没有加载的图片
$img.attr('data-isLoading', 1);
}
</script>
</body>
</html>
```
网友评论