详解js中图片懒加载的实现原理


当前第2页 返回上一页

html部分

1

2

3

4

5

6

7

8

9

10

11

12

<div>

  <img src="./img/1.jpg" data-src="./img/1.jpg" alt="">

  <img src="./img/1.jpg" data-src="./img/2.jpg" alt="">

  <img src="./img/1.jpg" data-src="./img/3.jpg" alt="">

  <img src="./img/1.jpg" data-src="./img/4.jpg" alt="">

  <img src="./img/1.jpg" data-src="./img/5.jpg" alt="">

  <img src="./img/1.jpg" data-src="./img/6.jpg" alt="">

  <img src="./img/1.jpg" data-src="./img/7.jpg" alt="">

  <img src="./img/1.jpg" data-src="./img/8.jpg" alt="">

  <img src="./img/1.jpg" data-src="./img/9.jpg" alt="">

  <img src="./img/1.jpg" data-src="./img/10.jpg" alt="">

 </div>

js部分

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

window.onload = () => {

   // 获取某节点与浏览器顶部的距离

   function getTop(e) {

    if (!e) return

    return e.offsetTop

   }

   let imgs = document.getElementsByTagName('img')

   function lazyLoading(imgs) {

    // 可是区域高度

    let innerHeight = window.innerHeight;

    // 滚动区域高度

    let scrollTop = document.documentElement.scrollTop || document.body.scrollTop;

    for (let i = 0; i < imgs.length; i++) {

     // 图片距离顶部的距离大于可视区域和滚动区域之和时加载

     if (scrollTop + innerHeight > getTop(imgs[i])) {

      imgs[i].src = imgs[i].getAttribute('data-src')

     }

    }

   }

   lazyLoading(imgs)

   window.onscroll = () => {

    lazyLoading(imgs)

   }

  }

以上就是详解js中图片懒加载的实现原理的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

javascript转换成整数方法有哪些?

js怎么改变css display属性的值

javascript如何定时自动关闭页面

h5调用相机拍照并压缩图片

js如何判断打开项目的浏览器类别

jquery怎么写ajax

h5+js实现本地文件读取和写入

vue的本地静态图片路径

vue.js中怎么添加图片

爬虫之 js逆向某验滑动加密(2)

更多相关阅读请进入《js》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...