原生js实现图片懒加载

image

js:

    let view = document.documentElement.clientHeight;//获取浏览器窗口可视区的高度
    function fn1(){
        setTimeout(function lazyload() {    //添加一个定时器一秒钟后开始执行
        let imgs = document.querySelectorAll('img');    // 获取所有img标签
        // console.log(imgs);
        for (let item of imgs) {                // 使用for-of遍历所有图片
            // 显示图片出现在浏览器的位置
            let rect = item.getBoundingClientRect();    // 找到每一个图片在可视区上的位置
            console.log(rect);
            if (rect.bottom >= 0 && rect.top < view) {    //给个if语句如果图片的底部大于0并且小于这个浏览器的可视区域 ,就执行以下操作
                item.src = item.getAttribute('data-original')    // 获取data-original的路径传给img
            }
        }
    },1000)
    }
    fn1();
    document.addEventListener('scroll',fn1)    //当滚动事件发生时就开始执行fn1函数里的任务

image
image

posted @   举个栗子走天下  阅读(59)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
点击右上角即可分享
微信分享提示