图片懒加载(滚动到哪显示图片显示到哪)

因为

网页加载太慢,想着减少页面卡顿,就开始想让用户看到哪加载到哪,直接上代码了:

```

<!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>

```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • <!DOCTYPE html> 图片懒加载原理及实现 .container{ max-wi...
    殇亦寒阅读 2,515评论 0 0
  • 原理: 先将img标签的src链接设为同一张图片(比如空白图片),然后给img标签设置自定义属性(比如 data-...
    泡杯感冒灵阅读 48,631评论 8 25
  • 当页面中请求的图片过多,而且图片太大,页面访问的速度是很慢的,对用户的体验不友好,;使用图片懒加载可以减轻服务器的...
    love2013阅读 2,990评论 0 0
  • 1. css实现图片自适应宽高 2.讲 flex,手写出 flex 常用的属性,并且讲出作用 flex 是 fle...
    送你一堆小心心阅读 3,081评论 0 0
  • 一、原理 在浏览器滚动的时候,遍历所有图片,若图片在视窗可视区域,则加载该图片 将图片地址存放在自定义属性中(da...
    饥人谷_js_chen阅读 3,790评论 0 4

友情链接更多精彩内容