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 相关文章推荐
不懂JavaScript应该怎样学
Apr 16 Javascript
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
Dec 07 Javascript
函数window.open实现关闭所有的子窗口
Aug 03 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
Jan 15 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
Oct 24 Javascript
简单实现IONIC购物车功能
Jan 10 Javascript
浅谈angularjs依赖服务注入写法的注意点
Apr 24 Javascript
Angular2 组件通信的实例代码
Jun 23 Javascript
浅谈JS如何实现真正的对象常量
Jun 25 Javascript
underscore之Chaining_动力节点Java学院整理
Jul 10 Javascript
使用vue-aplayer插件时出现的问题的解决
Mar 02 Javascript
vue单应用在ios系统中实现微信分享功能操作
Sep 07 Javascript
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(3)
2006/10/09 PHP
简单的PHP留言本实例代码
2010/05/09 PHP
php实现与erlang的二进制通讯实例解析
2014/07/23 PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
2014/11/17 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
PHP计算近1年的所有月份
2017/03/13 PHP
php 猴子摘桃的算法
2017/06/20 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
使用js获取地址栏中传递的值
2013/07/02 Javascript
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
[00:14]护身甲盾
2019/03/06 DOTA
[00:05]ChinaJoy现场 DOTA2玩家高呼“CN DOTA BEST DOTA”
2019/08/04 DOTA
Python中print和return的作用及区别解析
2019/05/05 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
python 爬取B站原视频的实例代码
2020/09/09 Python
CSS3 Notes: -webkit-box-reflect实现倒影的实例
2016/12/08 HTML / CSS
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
简述DNS进行域名解析的过程
2013/12/02 面试题
门卫岗位职责
2013/11/15 职场文书
大学生校园创业计划书
2014/02/08 职场文书
党员教师自我剖析材料
2014/09/29 职场文书
锅炉工岗位职责
2015/02/13 职场文书
Python激活Anaconda环境变量的详细步骤
2021/06/08 Python