IntersectionObserver实现图片懒加载的示例
发布时间 - 2026-01-11 03:28:02 点击率:次API:

https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
直接上源码:
<!DOCTYPE html>
<html>
<header>
<style>
.list-item{
height: 400px;
margin: 5px;
background-color: lightblue;
list-style: none;
}
</style>
</header>
<body>
<li class="list-item"><img class="list-item-img" alt="loading" data-src='./images/icon1.png'></li>
<li class="list-item"><img class="list-item-img" alt="loading" data-src='./images/icon2.png'></li>
<li class="list-item"><img class="list-item-img" alt="loading" data-src='./images/icon3.png'></li>
<li class="list-item"><img class="list-item-img" alt="loading" data-src='./images/icon4.png'></li>
<li class="list-item"><img class="list-item-img" alt="loading" data-src='./images/icon5.png'></li>
<li class="list-item"><img class="list-item-img" alt="loading" data-src='./images/icon6.png'></li>
<script>
var observer = new IntersectionObserver(function(changes) {
console.log(changes);
changes.forEach(function(element, index) {
// statements
if (element.intersectionRatio > 0 && element.intersectionRatio <= 1) {
element.target.src = element.target.dataset.src;
}
});
});
function addObserver() {
var listItems = document.querySelectorAll('.list-item-img');
listItems.forEach(function(item) {
observer.observe(item);
});
}
addObserver();
</script>
</body>
</html>
运行代码后发现,当滚动滚动轴时,只有当<li>区域完全显示出来后才会触发相应的下载图片的http请求。
兼容浏览器:
desktop:
Mobile:
以上这篇IntersectionObserver实现图片懒加载的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# 实现图片懒加载
# 面试判断元素是否在可视区域中IntersectionObserver详解
# 可视化埋点平台元素曝光采集intersectionObserver思路实践
# 交叉观察器 IntersectionObserver用法详解
# IntersectionObserver判断是否在可视区域详解
# 谈谈IntersectionObserver懒加载的具体使用
# 一文详解前端进阶之IntersectionObserver
# 给大家
# 才会
# 希望能
# 这篇
# 小编
# 大家多多
# 下载图片
# 加载
# html
# list
# header
# gt
# xhtml
# brush
# DOCTYPE
# lt
# item
# body
# lightblue
# img
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
如何在宝塔面板中修改默认建站目录?
Laravel如何处理文件下载请求?(Response示例)
javascript中闭包概念与用法深入理解
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
Python函数文档自动校验_规范解析【教程】
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
装修招标网站设计制作流程,装修招标流程?
Laravel如何使用查询构建器?(Query Builder高级用法)
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
如何在宝塔面板中创建新站点?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
微信小程序 闭包写法详细介绍
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
Laravel如何集成Inertia.js与Vue/React?(安装配置)
laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
Laravel中的withCount方法怎么高效统计关联模型数量
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
如何用AWS免费套餐快速搭建高效网站?
如何正确下载安装西数主机建站助手?
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
如何用好域名打造高点击率的自主建站?
如何彻底删除建站之星生成的Banner?
大同网页,大同瑞慈医院官网?
JavaScript如何实现类型判断_typeof和instanceof有什么区别
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
Laravel如何使用Service Container和依赖注入?(代码示例)
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
Laravel如何实现API资源集合?(Resource Collection教程)
如何基于云服务器快速搭建网站及云盘系统?
高端云建站费用究竟需要多少预算?
Laravel如何使用withoutEvents方法临时禁用模型事件
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
详解阿里云nginx服务器多站点的配置
如何用美橙互联一键搭建多站合一网站?
如何在七牛云存储上搭建网站并设置自定义域名?
Bootstrap整体框架之JavaScript插件架构
百度浏览器如何管理插件 百度浏览器插件管理方法
如何彻底卸载建站之星软件?
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
网站建设保证美观性,需要考虑的几点问题!

