JS-图片的懒加载

懒加载主要是为了优化页面渲染,是前端性能优化的重要方法。主要是通过图片或数据的延时加载,加快页面渲染的速度,让第一次打开页面的速度变快,只有滑动到某个区域,才加载到真实的图片,这样也节省了用户的流量,哈哈。
实现思路:

  1. 把所有需要延迟加载的图片用一个盒子包起来,设置宽高和默认占位图。
  2. 开始让所有的image的src为空,把真实的图片地址放到一个自定义属性当中,让开始所有的image隐藏。
  3. 等待其他资源加载完后,再开始加载图片。
  4. 对于很多图片,页面滚动的时候,当前图片区域完全显示出来后再加载真实的图片。
    在这里插入图片描述
    浏览器可视区高度:window.innerHeight
    浏览器滚动条滚过的高度:
    document.body.scroll || documentElement.scrollTop
    元素距文档顶部的高度:img.offsetTop
    判断页面加载的依据:
    img.offsetTop < window.innerHeight + documentElement.scrollTop
        let imgs = document.querySelectorAll('img');

        function delay() {
            let scrollTop = document.body.scrollTop || document.documentElement.scrollTop,
                winTop = window.innerHeight;
            for (let i = 0; i < imgs.length; i++) {
                if (imgs[i].offsetTop < scrollTop + winTop) {
                    imgs[i].className = 'fade';
                    imgs[i].src = imgs[i].getAttribute('data-src');
                }
            }
        }
        window.onscroll = function () {
            delay()
        }
        window.onload = function () {
            delay()
        }

在这里插入图片描述
(若有不对望指出)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值