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 相关文章推荐
JQuery EasyUI 对话框的使用方法
Oct 24 Javascript
JQuery触发radio或checkbox的change事件
Dec 18 Javascript
JS字符串截取函数实例
Dec 27 Javascript
JavaScript数字和字符串转换示例
Mar 26 Javascript
javascript执行环境及作用域详解
May 05 Javascript
jQuery学习心得总结(必看篇)
Jun 10 Javascript
微信小程序 传值取值的几种方法总结
Jan 16 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
Jan 16 Javascript
JAVA面试题 static关键字详解
Jul 16 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
Aug 26 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
Sep 20 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
Aug 06 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
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
2016/04/11 PHP
PHP学习笔记之php文件操作
2016/06/03 PHP
用php+ajax新建流程(请假、进货、出货等)
2017/06/11 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
各浏览器对click方法的支持差异小结
2011/07/31 Javascript
让复选框只能选择一项的方法
2013/10/08 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
javascript实现拖放效果
2015/12/16 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
nodejs进阶(6)—连接MySQL数据库示例
2017/01/07 NodeJs
初探nodeJS
2017/01/24 NodeJs
详解Vue源码学习之callHook钩子函数
2018/07/25 Javascript
图文讲解vue的v-if使用方法
2019/02/11 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
2019/10/12 jQuery
Node绑定全局TraceID的实现方法
2019/11/14 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
Python的SQLAlchemy框架使用入门
2015/04/29 Python
Python科学画图代码分享
2017/11/29 Python
Python-OpenCV基本操作方法详解
2018/04/02 Python
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
python 2.7.13 安装配置方法图文教程
2018/09/18 Python
Python函数装饰器实现方法详解
2018/12/22 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
德国苹果商店:MacTrade
2020/05/18 全球购物
承认错误的检讨书
2014/01/30 职场文书
总经理秘书岗位职责
2014/03/17 职场文书
2016新年问候语大全
2015/11/11 职场文书