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中string转date示例代码
Nov 01 Javascript
Javascript和Java获取各种form表单信息的简单实例
Feb 14 Javascript
JQuery标签页效果实例详解
Dec 24 Javascript
JavaScript中的继承之类继承
May 01 Javascript
在Node.js中使用Javascript Generators详解
May 05 Javascript
Bootstrap基本样式学习笔记之表单(3)
Dec 07 Javascript
Thinkjs3新手入门之添加一个新的页面
Dec 06 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
Aug 08 jQuery
layer弹出层自定义提交取消按钮的例子
Sep 10 Javascript
js实现鼠标点击飘爱心效果
Aug 19 Javascript
vue 修改 data 数据问题并实时显示操作
Sep 07 Javascript
详解Vue router路由
Nov 20 Vue.js
利用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 图片上传类代码
2009/07/17 PHP
php模板函数 正则实现代码
2012/10/15 PHP
ThinkPHP控制器详解
2015/07/27 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
Javascript实现的鼠标经过时播放声音
2010/05/18 Javascript
jQuery extend 的简单实例
2013/09/18 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
2014/01/20 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
Javascript连接Access数据库完整实例
2015/08/03 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
2016/08/20 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
Angular 2.x学习教程之结构指令详解
2017/05/25 Javascript
JS HTML图片显示Canvas 压缩功能
2017/07/21 Javascript
浅谈node的事件机制
2017/10/09 Javascript
移动前端图片压缩上传的实例
2017/12/06 Javascript
webpack写jquery插件的环境配置
2017/12/21 jQuery
node.js学习笔记之koa框架和简单爬虫练习
2018/12/13 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
koa-passport实现本地验证的方法示例
2020/02/20 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
openlayers4.6.5实现距离量测和面积量测
2020/09/25 Javascript
JavaScript十大取整方法实例教程
2020/12/03 Javascript
使用C#配合ArcGIS Engine进行地理信息系统开发
2016/02/19 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
一份全面的PHP面试问题考卷
2012/07/15 面试题
送货司机岗位职责
2013/12/11 职场文书
学校运动会开幕演讲稿
2014/01/04 职场文书
2016新年问候语大全
2015/11/11 职场文书
宣传委员竞选稿
2015/11/19 职场文书
pytorch 预训练模型读取修改相关参数的填坑问题
2021/06/05 Python
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL