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 相关文章推荐
JS解密入门 最终变量劫持
Jun 25 Javascript
ExtJS 入门
Oct 29 Javascript
javascript针对DOM的应用分析(二)
Apr 15 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
Oct 18 Javascript
表格单元格交错着色实现思路及代码
Apr 01 Javascript
Javascript简单实现可拖动的div
Oct 22 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
May 14 Javascript
jquery模拟多级复选框效果的简单实例
Jun 08 Javascript
深入学习js瀑布流布局
Oct 14 Javascript
javascript中的try catch异常捕获机制用法分析
Dec 14 Javascript
es6基础学习之解构赋值
Dec 10 Javascript
JS轻量级函数式编程实现XDM三
Jun 16 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
1.PHP简介
2006/10/09 PHP
我用php+mysql写的留言本
2006/10/09 PHP
PHP中的日期及时间
2006/11/23 PHP
用PHP生成html分页列表的代码
2007/03/18 PHP
PHP调用MySQL的存储过程的实现代码
2008/08/12 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
2014/06/26 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
Laravel事件监听器用法实例分析
2019/03/12 PHP
JavaScript获取各大浏览器信息图示
2015/11/20 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
2015/12/02 Javascript
jquery实现简单的banner轮播效果【实例】
2016/03/30 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
2016/06/17 Javascript
微信小程序 生命周期详解
2016/10/12 Javascript
IE8兼容Jquery.validate.js的问题
2016/12/01 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
js实现双色球效果
2020/08/02 Javascript
深入理解NumPy简明教程---数组2
2016/12/17 Python
python 全局变量的import机制介绍
2017/09/07 Python
Django安装配置mysql的方法步骤
2018/10/15 Python
python中 * 的用法详解
2019/07/10 Python
基于python生成英文版词云图代码实例
2020/05/16 Python
python中if及if-else如何使用
2020/06/02 Python
使用sklearn对多分类的每个类别进行指标评价操作
2020/06/11 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
2021/01/15 Python
机械电子工程专业推荐信范文
2013/11/20 职场文书
幼儿园大班区域活动总结
2014/07/09 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
Ajax实现三级联动效果
2021/10/05 Javascript
移除Selenium中window.navigator.webdriver值
2022/06/10 Python