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 相关文章推荐
网页常用特效代码整理
Jun 23 Javascript
javascript oop开发滑动(slide)菜单控件
Aug 25 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
Mar 01 Javascript
JavaScript对象创建及继承原理实例解剖
Feb 28 Javascript
javascript字符串替换及字符串分割示例代码
Dec 12 Javascript
JavaScript数据库TaffyDB用法实例分析
Jul 27 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
Aug 25 Javascript
jQuery与js实现颜色渐变的方法
Dec 30 Javascript
AngularJS中的缓存使用
Jan 11 Javascript
深入理解node.js之path模块
May 03 Javascript
json2.js 入门教程之使用方法与实例分析
Sep 14 Javascript
避坑之 JavaScript 中的toFixed()和正则表达式
Apr 19 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防CC攻击实现代码
2011/12/29 PHP
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
PHP对象链式操作实现原理分析
2016/10/09 PHP
总结PHP内存释放以及垃圾回收
2018/03/29 PHP
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
深究AngularJS中ng-drag、ng-drop的用法
2017/06/12 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
2017/09/10 Javascript
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
2016/09/21 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
Sanic框架异常处理与中间件操作实例分析
2018/07/16 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
澳大利亚最大的女装零售商:Millers
2017/09/10 全球购物
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
团工委书记自荐书范文
2013/12/17 职场文书
医药营销个人求职信范文
2014/02/07 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
新党章心得体会
2014/09/04 职场文书
党的群众路线对照检查材料
2014/09/22 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
党支部季度考核意见
2015/06/02 职场文书
歌剧魅影观后感
2015/06/05 职场文书
Golang 编译成DLL文件的操作
2021/05/06 Golang
Pytorch 如何实现常用正则化
2021/05/27 Python
Python自动化爬取天眼查数据的实现
2021/06/15 Python