js实现图片懒加载效果


Posted in Javascript onJuly 17, 2017

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

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

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

Javascript 相关文章推荐
setAttribute 与 class冲突解决
Feb 17 Javascript
js 省地市级联选择
Feb 07 Javascript
JS字符串函数扩展代码
Sep 13 Javascript
js实现拖拽效果(构造函数)
Dec 14 Javascript
悬浮广告方法日常收集整理
Mar 18 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
Sep 18 Javascript
微信小程序 保留小数(toFixed)详细介绍
Nov 16 Javascript
Bootstrap模态窗口源码解析
Feb 08 Javascript
ES6中Proxy代理用法实例浅析
Apr 06 Javascript
微信小程序登陆注册功能的实现代码
Dec 10 Javascript
详解vue实现坐标拾取器功能示例
Nov 18 Vue.js
基于VUE实现简单的学生信息管理系统
Jan 13 Vue.js
Vue.js项目部署到服务器的详细步骤
Jul 17 #Javascript
js图片放大镜实例讲解(必看篇)
Jul 17 #Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
Jul 17 #Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
Jul 16 #Javascript
node.js express中app.param的用法详解
Jul 16 #Javascript
Node.js中流(stream)的使用方法示例
Jul 16 #Javascript
js+html5实现半透明遮罩层弹框效果
Aug 24 #Javascript
You might like
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
2014/10/17 PHP
PHP树形结构tree类用法示例
2019/02/01 PHP
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
javascript 面向对象全新理练之数据的封装
2009/12/03 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
bootstrap表格分页实例讲解
2016/12/30 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
jquery 键盘事件的使用方法详解
2017/09/13 jQuery
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
新版小程序登录授权的方法
2018/12/12 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
微信小程序Flex布局用法深入浅出分析
2019/04/25 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
使用Python处理Excel表格的简单方法
2018/06/07 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
Python如何实现感知器的逻辑电路
2020/12/25 Python
上海天奕面试题笔试题
2015/04/19 面试题
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
建筑工程技术应届生自荐信
2013/09/27 职场文书
体育教师自荐信范文
2013/12/16 职场文书
优秀学生自我鉴定范例
2013/12/18 职场文书
和解协议书
2014/04/16 职场文书
节能环保标语
2014/06/12 职场文书
幼儿园中班区域活动总结
2014/07/09 职场文书
党委班子对照检查材料
2014/08/19 职场文书
信访工作个人总结
2015/03/03 职场文书
小学体育组工作总结
2015/08/13 职场文书
mysql函数全面总结
2021/11/11 MySQL
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL