js实现图片懒加载效果
发布时间 - 2026-01-11 02:22:09 点击率:次本文实例为大家分享了js图片懒加载的具体代码,供大家参考,具体内容如下

图片懒加载,思路:当鼠标滑动到对应图片的高度时,进行图片的加载;
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#div{
width: 575px;
height: auto;
overflow: hidden;
border: red 1px solid;
margin: 0 auto;
/*给该div设置定位*/
position: relative;
}
#div img{
width: 267px;
height: 396px;
margin-left: 10px;
border: 1px solid #000;
}
</style>
<script type="text/javascript">
function getPos(obj){
var l = 0;
var t = 0;
while(obj){
l += obj.offsetLeft;
t += obj.offsetTop;
obj = obj.offsetParent;
}
return {left:l ,top : t}
}
window.onload = window.onscroll = function(){
//获取到img
var aImg = document.getElementsByTagName("img");
//获取到它的scrollTop 值 考虑兼容问题
var oScrollTop = document.documentElement.scrollTop || document.body.scrollTop;
// clientHeight = 上下padding + height
var clientH = document.documentElement.clientHeight;
//循环遍历每一项通过调用获取到每一个i 项对象的top 值
for (var i = 0;i<aImg.length;i++) {
var aImgTop = getPos(aImg[i]).top;
// 当滚动的时候进行判断,看他的滚动的高度加上它的clientHeight 是否比它的 top 值大
// 如果大或等于说明滚动到当前位置可以加载图片
if (oScrollTop + clientH >= aImgTop) {
// 进行图片的加载
aImg[i].src = aImg[i].getAttribute("_src");
}
}
}
</script>
</head>
<body>
<div id="div">
<img _src="../img/1.jpg"/>
<img _src="../img/2.jpg"/>
<img _src="../img/3.jpg"/>
<img _src="../img/4.jpg"/>
<img _src="../img/6.jpg"/>
<img _src="../img/7.jpg"/>
<img _src="../img/1.jpg"/>
<img _src="../img/2.jpg"/>
<img _src="../img/3.jpg"/>
<img _src="../img/4.jpg"/>
<img _src="../img/6.jpg"/>
<img _src="../img/7.jpg"/>
<img _src="../img/3.jpg"/>
<img _src="../img/4.jpg"/>
<img _src="../img/6.jpg"/>
<img _src="../img/7.jpg"/>
</div>
</body>
</html>
当有类似于瀑布流的布局时常用的加载模式
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js
# 图片懒加载
# 利用原生JS实现懒加载lazyLoad的三种方法总结
# javascript实现图片预加载和懒加载
# js 图片懒加载的实现
# JS实现图片懒加载(lazyload)过程详解
# Vue.js如何实现路由懒加载浅析
# JavaScript懒加载详解
# 加载
# 遍历
# 看他
# 大家分享
# 类似于
# 具体内容
# 大家多多
# 每一项
# 当鼠标
# px
# height
# overflow
# auto
# css
# text
# div
# width
# relative
# position
# img
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
Python自动化办公教程_ExcelWordPDF批量处理案例
如何用美橙互联一键搭建多站合一网站?
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
如何彻底删除建站之星生成的Banner?
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
javascript中的try catch异常捕获机制用法分析
企业网站制作这些问题要关注
昵图网官网入口 昵图网素材平台官方入口
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
Laravel如何保护应用免受CSRF攻击?(原理和示例)
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
黑客如何通过漏洞一步步攻陷网站服务器?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
HTML 中动态设置元素 name 属性的正确语法详解
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
Laravel Docker环境搭建教程_Laravel Sail使用指南
Laravel如何记录自定义日志?(Log频道配置)
如何自定义建站之星网站的导航菜单样式?
如何在香港免费服务器上快速搭建网站?
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
原生JS实现图片轮播切换效果
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何用PHP工具快速搭建高效网站?
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
Laravel如何使用查询构建器?(Query Builder高级用法)
Laravel怎么上传文件_Laravel图片上传及存储配置
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
如何在香港服务器上快速搭建免备案网站?
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
android nfc常用标签读取总结
网站制作价目表怎么做,珍爱网婚介费用多少?
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
Laravel如何为API生成Swagger或OpenAPI文档
如何用已有域名快速搭建网站?
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
如何在IIS中新建站点并配置端口与IP地址?
如何安全更换建站之星模板并保留数据?
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
电商网站制作价格怎么算,网上拍卖流程以及规则?

