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缓存驱动和应用优化方案  电商网站制作价格怎么算,网上拍卖流程以及规则?