懒加载(Load On Demand)是一种独特而又强大的数据获取方法,它能够在用户滚动页面的时候自动获取更多的数据,

而新得到的数据不会影响原有数据的显示,同时最大程度上减少服务器端的资源耗用。

比如,用户滚动到相应位置时,显示相应的图片,否则不加载!!!

下面是一个图片懒加载的示例.

这个html文件上含有许多div标签,一个div标签下要添加一个子标签img用来显示一个图片,如果页面载入时全部从服

务器端下载图片资源,无疑十分耗费时间,所以我们将采用图片懒加载的方式,使用户滚动到当前位置时才加载该位置的图

片。

首先,在html中我们要借助自定义属性data-src来保存图片的资源地址

即所有的要显示图片的div标签加上一个data-src属性

<div class="lazyDone" data-src="http://你的图片资源地址0"></div>
<div class="lazyDone" data-src="http://你的图片资源地址1"></div>
<div class="lazyDone" data-src="http://你的图片资源地址2"></div>
<div class="lazyDone" data-src="http://你的图片资源地址3"></div>
<div class="lazyDone" data-src="http://你的图片资源地址4"></div>
<div class="lazyDone" data-src="http://你的图片资源地址5"></div>
<div class="lazyDone" data-src="http://你的图片资源地址6"></div>
<div class="lazyDone" data-src="http://你的图片资源地址7"></div>
<div class="lazyDone" data-src="http://你的图片资源地址8"></div>
<div class="lazyDone" data-src="http://你的图片资源地址9"></div>

在我们的js中就可以进行处理,识别出这些带有data-src标签的div。然后计算该位置到页面顶部的距离,判断用户是否

滚动到该位置,如果达到则取出它的data-src的value,创建一个子标签img,将div的data-src的值赋值给img的src属性。

然后显示这个img标签,用户就可以在该位置看到相应的图片了。

function setImg($obj){
var src = $obj.getAttribute("data-src");
var img = document.createElement("img");
img.src = src;
if($obj.children.length == 0){
//第一次滚动到此位置时加载,之后资源已经下载,不用重复添加
$obj.appendChild(img);
}
}
//获得对象距离页面顶端的距离
function getHeight($obj) {
var h = $obj.offset().top;
return h;
} window.onscroll = function(){
var $div = $(".lazyDone");
for (var i = 0; i < $div.length; i++) {
var $odiv = $div[i];
//检查$odiv是否在可视区域
var t = document.documentElement.clientHeight + (document.documentElement.scrollTop || document.body.scrollTop);
var h = getHegiht($odiv);
if (h < t) {
setImg($odiv);
}
}
};

最新文章

  1. JavaScript学习笔记1之基础知识点
  2. 组件RecyclerView的应用(一)
  3. MySQL 数据备份与还原
  4. SharePoint2013的头像显示和读取
  5. Unitils集成DBUnit、Spring-单元测试
  6. P6 EPPM Manual Installation Guide (Oracle Database)
  7. final-----finalize----finally---区别
  8. ASP.NET中Button控件的CommandName和CommandArgument属性用法
  9. VC++编程中获取系统时间
  10. 联通光纤上网配置+华为HG8240光猫+TL-WR842N
  11. 优化函数式编程:向 PHP 移植 Clojure 函数
  12. cocos2dx 实用小技巧
  13. CSS中Position属性
  14. linux下查阅文件内容cat,more,less,tail
  15. 使用Bootstrap 他写道网站
  16. 创建Sdcard
  17. Unity3D-游戏中的技能碰撞检测
  18. 一步一步实现HTTP服务器-开篇
  19. C#操作xml SelectNodes,SelectSingleNode总是返回NULL
  20. C++使用: C++中map的基本操作和用法

热门文章

  1. 关于Excel Networkdays方法的实现
  2. SQL Server 2008中的hierarchyid
  3. [Web] What Is JSONP?
  4. Javascript call与apply记录
  5. 学习笔记之ulimit
  6. Linux下root密码忘记的解决办法
  7. 用js实现选项卡切换效果
  8. Div+Css的初步运用
  9. 正则表达式 自学笔记整理记录 EASY REGEX~
  10. ASP连接11种数据库的常用语法