欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

js实现图片懒加载效果

程序员文章站 2022-05-26 08:28:36
本文实例为大家分享了js图片懒加载的具体代码,供大家参考,具体内容如下 图片懒加载,思路:当鼠标滑动到对应图片的高度时,进行图片的加载;

本文实例为大家分享了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>

当有类似于瀑布流的布局时常用的加载模式

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。