jquery.lazyload  实现图片延迟加载jquery插件


Posted in Javascript onFebruary 06, 2010

什么是ImageLazyLoad技术
在页面上图片比较多的时候,打开一张页面必然引起与服务器大数据量的交互。尤其是对于高清晰的图片,占的几M的空间。ImageLazyLoad技术就是,当前可见界面的图片是加载进来的,而不可见页面(通过滚动条下拉可见)中的图片是不加载的,这样势必会引起速度上质的提升。

怎么实现ImageLazyLoad

一、使用JQuery插件 ,插件名: jquery.lazyload(7kb大小),压缩后(3kb大小)

在线压缩js http://closure-compiler.appspot.com/home
虽然是很牛X的特效,不过用JQuery插件只需要短短几句代码,使用过程如下:

1.导入JS插件
<script src="jquery.js" type="text/javascript"></script>
<script src="jquery.lazyload.js" type="text/javascript"></script>
2.在你的页面中加入如下的javascript:

$("img").lazyload();

这将会使所有的图片都延迟加载。

当然插件还有几个配置项可供设置。

1.改变threshold

$(“img”).lazyload({ threshold : 200 });

把阀值设置成200 意思就是当图片没有看到之前先load 200像素。

2.当然了你也可以通过设置占位符图片和自定事件来触发加载图片事件

$("img").lazyload({ 
placeholder : "img/grey.gif", 
event : "click" 
});

3.可以通过定义effect 参数来定义一些图片显示效果

$("img").lazyload({ 
placeholder : "img/grey.gif", 
effect : "fadeIn" 
});

LazyLoad(延迟加载)技术不仅仅用在对网页中图片的延迟加载,对数据同样可以,Google Reader和Bing图片搜索就把
LazyLoad技术运用的淋漓尽致;
缺陷:
1.与Ajax技术的冲突;
2.图片的延迟加载,遇到高度特别高的图片,会出现停止加载的问题;
3.写代码不规范的同学要注意了,不管由于什么原因,如果您的页面中,img标签的height属性未定义,那么我建议您最好不要使用ImageLazyLoad

大家可以直接采用淘宝的延迟加载技术:(2kb大小)
http://a.tbcdn.cn/kissy/1.0.0/build/imglazyload/imglazyload-min.js
调用方法也是很简单的:
<script src="http://a.tbcdn.cn/kissy/1.0.0/build/imglazyload/imglazyload-min.js"
type="text/javascript"></script> <script type="text/javascript">// <![CDATA[KISSY.ImageLazyload();// ]]></script>
注:该脚本依赖 yahoo-dom-event, 页面中需要加载 yui 2.x,你也可以直接引用下面的地址:
<script src="http://kissy.googlecode.com/svn/trunk/third-party/yui2/yahoo-dom-event/yahoo-dom-event.js" type="text/javascript"></script>

配置参数如下:

<script type="text/javascript"> 
KISSY.ImageLazyload({ 
mod: "manual", // 延迟模式。默认为 auto 
diff: 200 // 当前屏幕下多远处的图片开始延迟加载。默认两屏外的图片才延迟加载 
}); 
</script>

manual 模式时,需要手动将页面中需要延迟加载的图片的 src 属性名更改为 data-lazyload-src. 比如 SRP 页面,宝贝列表的后20个图片延迟加载。 输出时,html 代码为:

<img data-lazy-src="path/to/img" alt="something" />

如果您是Jquery,Prototype等这些JS框架的粉丝,他们都有定制的LazyLoad Plugin提供;

可查看http://www.appelsiini.net/projects/lazyload

LazyLoad(延迟加载)技术不仅仅用在对网页中图片的延迟加载,对数据同样可以,Google Reader和Bing图片搜索就把
LazyLoad技术运用的淋漓尽致;

Javascript 相关文章推荐
JavaScript 变量基础知识
Nov 07 Javascript
用js来获取上传的文件名纯粹是为了美化而用
Oct 23 Javascript
浅谈javascript构造函数与实例化对象
Jun 22 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
Sep 06 Javascript
AngularJS基础 ng-list 指令详解及示例代码
Aug 02 Javascript
jQuery层次选择器用法示例
Sep 09 Javascript
smartupload实现文件上传时获取表单数据(推荐)
Dec 12 Javascript
Javascript中Promise的四种常用方法总结
Jul 14 Javascript
node文件批量重命名的方法示例
Oct 23 Javascript
vue router 源码概览案例分析
Oct 09 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
Nov 10 Javascript
Javascript 模拟mvc实现点餐程序案例详解
Dec 24 Javascript
利用jQuery 实现GridView异步排序、分页的代码
Feb 06 #Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
Feb 04 #Javascript
使用SyntaxHighlighter实现HTML高亮显示代码的方法
Feb 04 #Javascript
JavaScript学习笔记(十七)js 优化
Feb 04 #Javascript
jQuery生成asp.net服务器控件的代码
Feb 04 #Javascript
javascript两段代码,两个小技巧
Feb 04 #Javascript
JavaScript面向对象之静态与非静态类
Feb 03 #Javascript
You might like
PHP 循环删除无限分类子节点的实现代码
2013/06/21 PHP
PHP批量去除BOM头内容信息代码
2016/03/11 PHP
php mongodb操作类 带几个简单的例子
2016/08/25 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
JS获取地址栏参数的小例子
2013/08/23 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
vue深入解析之render function code详解
2017/07/18 Javascript
基于JavaScript表单脚本(详解)
2017/10/18 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
详解小程序rich-text对富文本支持方案
2018/11/28 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
2019/03/04 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
Python 调用VC++的动态链接库(DLL)
2008/09/06 Python
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
深入理解python多进程编程
2016/06/12 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
Python常用库大全及简要说明
2020/01/17 Python
django queryset 去重 .distinct()说明
2020/05/19 Python
什么是python的自省
2020/06/21 Python
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
思想汇报格式
2014/01/05 职场文书
大学生迟到检讨书500字
2014/10/17 职场文书
礼仪培训心得体会
2016/01/22 职场文书
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS
Django框架之路由用法
2022/06/10 Python