Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件


Posted in Javascript onMarch 12, 2011

从网上下载来的版本多多少少都有些BUG,尤其是加载后在IE6和IE7下图片闪动是个大问题,在网上查了很久,也没有找到相关的解决方案。没解决方案,就得发挥咱DIY的精神,自己想法解决,分析了BUG,理了理思路,结合前段时间我做弹出窗口特效的方法,解决了Jquery.LazyLoad.js的兼容问题,现将思路和方法与大家分享一下。

解决思路大致是两点,一是从LazyLoad本身的滤镜参数下手,发现有一个参数在IE6和IE7是可以用的,就是show,那么在IE6和IE7下用这个特效;二是IE8以上(包括IE8)、FireFox,Chrome等非IE核心的浏览器对fadeIn特效都支持,那么在这些版本的浏览器中就使用这种酷酷的特效。

思路出来了,就想办法解决:

1、首先用JQ判断浏览器类型及版本,如果是IE8以下的浏览器就用effect=show,否则就用effect=fadeIn,判断浏览器版本函数如下:

function checkbrowse() { 
var ua = navigator.userAgent.toLowerCase(); 
var is = (ua.match(/\b(chrome|opera|safari|msie|firefox)\b/) || ['', 'mozilla'])[1]; 
var r = '(?:' + is + '|version)[\\/: ]([\\d.]+)'; 
var v = (ua.match(new RegExp(r)) || [])[1]; 
jQuery.browser.is = is; 
jQuery.browser.ver = v; 
return { 
'is': jQuery.browser.is, 
'ver': jQuery.browser.ver 
} 
}

我是将以上的代码加入了JQ包里,方便以后使用,路径是http://demo.3water.com/js/2011/lazyload/Js/lazyload/jquery.js。

2、改造Jquery.LazyLoad.js函数,根据浏览器版本来显示不同的滤镜效果:

var public = checkbrowse(); 
var showeffect = ""; 
if ((public['is'] == 'msie' && public['ver'] < 8.0)) { 
showeffect = "show" 
} else { 
showeffect = "fadeIn" 
} 
jQuery(document).ready(function($) { 
$("img").lazyload({ 
placeholder: "http://demo.3water.com/js/2011/lazyload/Js/lazyload/grey.gif", 
effect: showeffect, 
failurelimit: 10 
}) 
});

Jquery.LazyLoad.js使用方法:
1、将以下文件存放在同一目录下面:
jquery.js
jquery.layzload.js
grey.gif
2、在需要使用特效的地方加上如下的代码:
<script type="text/javascript" src="http://demo.3water.com/js/2011/lazyload/Js/lazyload/jquery.js"></script>
<script type="text/javascript" src="http://demo.3water.com/js/2011/lazyload/Js/lazyload/jquery.lazyload.js"></script>

Jquery.LazyLoad.js插件修正版下载:
lazyload.rar
Jquery.LazyLoad.js插件参数详解:
下面对LazyLoad插件的一些参数进行说明,供使用者做出更贴切的效果。

1,用图片提前占位
placeholder : "img/grey.gif",
参数:placeholder,值为某一图片路径.此图片用来占据将要加载的图片的位置,待图片加载时,占位图则会隐藏

2,载入使用何种效果
effect : "fadeIn",
参数:effect(特效),值有show(直接显示),fadeIn(淡入),slideDown(下拉)等,常用fadeIn

3,提前开始加载
threshold : 200,
参数:threshold,值为数字,代表页面高度.如设置为200,表示滚动条在离目标位置还有200的高度时就开始加载图片,可以做到不让用户察觉.

4,事件触发时才加载
event : "click",
参数:event,值有click(点击),mouseover(鼠标划过),sporty(运动的),foobar(…).可以实现鼠标莫过或点击图片才开始加载,后两个值未测试…

5,对某容器中的图片实现效果
container: $("#container"),
参数:container,值为某容器.lazyload默认在拉动浏览器滚动条时生效,这个参数可以让你在拉动某DIV的滚动条时依次加载其中的图片

6,图片排序混乱时
failurelimit : 10,
参数:failurelimit,值为数字.lazyload默认在找到第一张不在可见区域里的图片时则不再继续加载,但当HTML容器混乱的时候可能出现可见区域内图片并没加载出来的情况,failurelimit意在加载N张可见区域外的图片,以避免出现这个问题.

Javascript 相关文章推荐
动态加载外部javascript文件的函数代码分享
Jul 28 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
Mar 05 Javascript
红米手机抢购的js代码
Mar 10 Javascript
JS实现图片产生波纹一样flash效果的方法
Feb 27 Javascript
深入学习JavaScript中的Rest参数和参数默认值
Jul 28 Javascript
JQuery实现Ajax加载图片的方法
Dec 24 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
Jul 01 Javascript
原生js仿jquery实现对Ajax的封装
Oct 04 Javascript
Jquery Easyui表单组件Form使用详解(30)
Dec 19 Javascript
JS操作input标签属性checkbox全选的实现代码
Mar 02 Javascript
vue.js打包之后可能会遇到的坑!
Jun 03 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
Apr 13 Javascript
javascript textarea光标定位方法(兼容IE和FF)
Mar 12 #Javascript
JavaScript全局函数使用简单说明
Mar 11 #Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
Mar 10 #Javascript
始终在屏幕中间显示Div的代码(css+js)
Mar 10 #Javascript
javascript的函数、创建对象、封装、属性和方法、继承
Mar 10 #Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
Mar 10 #Javascript
基于Jquery的跨域传输数据(JSONP)
Mar 10 #Javascript
You might like
PHP的FTP学习(二)
2006/10/09 PHP
php array_map()数组函数使用说明
2011/07/12 PHP
php验证码生成代码
2015/11/11 PHP
php文件缓存方法总结
2016/03/16 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
PHP新特性之字节码缓存和内置服务器
2017/08/11 PHP
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
jQuery中scrollLeft()方法用法实例
2015/01/16 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
mac中利用NVM管理不同node版本的方法详解
2017/11/08 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
vue项目中使用lib-flexible解决移动端适配的问题解决
2018/08/23 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
2019/01/20 Javascript
Python 文件重命名工具代码
2009/07/26 Python
python实现矩阵乘法的方法
2015/06/28 Python
Python复数属性和方法运算操作示例
2017/07/21 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
python使用pipeline批量读写redis的方法
2019/02/18 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
详解Python并发编程之创建多线程的几种方法
2019/08/23 Python
python 实现将list转成字符串,中间用空格隔开
2019/12/25 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
Html5 FileReader实现即时上传图片功能实例代码
2014/09/01 HTML / CSS
倡议书格式模板
2014/05/13 职场文书
好的促销活动方案
2014/08/21 职场文书
我的1919观后感
2015/06/03 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书
Pytorch 使用tensor特定条件判断索引
2021/04/08 Python