js实现图片懒加载

方式一:html实现

在img标签加上 loading="lazy"

方式二:js实现

通过js监听页面的滚动,实现的原理主要是判断当前图片是否到了可视区域:

  • 拿到所有的图片 dom 。
  • 遍历每个图片判断当前图片是否到了可视区范围内。
  • 如果到了就设置图片的 src 属性。
  • 绑定 window 的 scroll 事件,对其进行事件监听。

在页面初始化的时候,<img>图片的src实际上是放在data-src属性上的,当元素处于可视范围内的时候,就把data-src赋值给src属性,完成图片加载。

方式三:IntersectionObserver实现

IntersectionObserver 是一个新的 API,可以自动"观察"元素是否可见,Chrome 51+ 已经支持。由于可见(visible)的本质是,目标元素与视口产生一个交叉区,所以这个 API 叫做"交叉观察器"。它的用法:IntersectionObserver 是浏览器原生提供的构造函数,接受两个参数:callback 是可见性变化时的回调函数,option 是配置对象(该参数可选)。目标元素的可见性变化时,就会调用观察器的回调函数 callback。callback 一般会触发两次。一次是目标元素刚刚进入视口(开始可见),另一次是完全离开视口(开始不可见)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/214783.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++ 实现Socket交互式服务端

在 Windows 操作系统中&#xff0c;原生提供了强大的网络编程支持&#xff0c;允许开发者使用 Socket API 进行网络通信&#xff0c;通过 Socket API&#xff0c;开发者可以创建、连接、发送和接收数据&#xff0c;实现网络通信。本文将深入探讨如何通过调用原生网络 API 实现同…

预制菜产业发展背景下,如何利用视频监控保障行业监管工作

一、方案背景 随着社会的快速发展和人们生活水平的提高&#xff0c;预制菜产业作为现代餐饮行业的重要组成部分&#xff0c;越来越受到消费者的欢迎。然而&#xff0c;由于相关监管工作的不健全或不到位&#xff0c;一些问题也相继浮现出来&#xff0c;如&#xff1a;食品安全…

浅谈国内智能制造现状和未来发展趋势

进人二十一世纪&#xff0c;互联网、新能源、大数据等技术的迅猛发展&#xff0c;从而使得社会发生巨大的改变&#xff0c;人类生产工业发生变革。为应对全球挑战&#xff0c;我国根据发展的实际情况&#xff0c;提出《中国制造2025》的国家战略规划。毋庸置疑的是&#xff0c;…

uniapp IOS从打包到上架流程(详细简单) 原创

​ 1.登入苹果开发者网站&#xff0c;打开App Store Connect ​ 2.新App的创建 点击我的App可以进入App管理界面&#xff0c;在右上角点击➕新建App 即可创建新的App&#xff0c;如下图&#xff1a; ​ 3.app基本信息填写 新建完App后&#xff0c;需要填写App的基本信息&…

【回眸】Tessy单元测试软件使用指南(一)安装篇

安装 在官网上下载安装包&#xff0c;安装完成后打开进入这个界面 注册申请license&#xff1a;在作为服务端的电脑上安装Tessy。安装完成后&#xff0c;启动Tessy会自动生成license服务器的注册码。&#xff08;注册码用于申请试用或永久的license文件&#xff09;这个对于我…

PCL 计算两点云之间的最小距离

目录 一、 算法原理二、 代码实现三、 结果展示四、 相关链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、 算法原理 pcl::registration::CorrespondenceEstimation是确定目标和查询点集(或特征)之间对应关…

App Inventor 2 什么情况下需要使用字典?

介绍 字典在其他语言中称为映射、关联数组或列表&#xff0c;是一种将一个值&#xff08;通常称为键&#xff09;与另一个值关联的数据结构。 Q&#xff1a;App Inventor 2 什么情况下需要使用字典&#xff1f; A&#xff1a;列表能完成字典的绝大部分功能&#xff0c;不过字…

Linux:VMWare启动虚拟机导致电脑蓝屏并重启问题解决

情况描述&#xff1a; 我这边安装Ubuntu系统后&#xff0c;对Ubuntu进行了汉化操作&#xff0c;重启Ubuntu时&#xff0c;直接导致Windows10蓝屏重启。 解决办法&#xff1a; 1、打开任务管理器&#xff0c;检查Windows10系统是否开启虚拟化功能。 没有开启&#xff0c;就进入…

每日一题:LeetCode-102.二叉树的层序遍历

每日一题系列&#xff08;day 03&#xff09; 前言&#xff1a; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f50e…

PE文件分析

用PEView及Python程序分析压缩包中的lab01.exe和lab01.dll两个PE文件&#xff0c;关键步骤给出截图&#xff1a; 分析两个文件的文件头中的各部分&#xff1b; 2.找出时间戳&#xff0c;计算出两个文件的生成时间&#xff1b; 注&#xff1a;时间戳为从1970年1月1日0时0分0秒到…

基于LiteFlow构建实时会员权益体系

知识简介&#xff1a;通过LiteFlow规则引擎构建会员权益体系&#xff0c;实现权益节点可插拔&#xff0c;可编排&#xff0c;可复用的特性。完成会员权益数据底盘建设&#xff0c;将分散的权益数据集中&#xff0c;提升权益查询及管理水平。 历史痛点 1&#xff09;不同等级权…

基于 Flink SQL 和 Paimon 构建流式湖仓新方案

本文整理自阿里云智能开源表存储负责人&#xff0c;Founder of Paimon&#xff0c;Flink PMC 成员李劲松在云栖大会开源大数据专场的分享。本篇内容主要分为四部分&#xff1a; 数据分析架构演进介绍 Apache PaimonFlink Paimon 流式湖仓流式湖仓Demo演示 数据分析架构演进 …