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 05 Javascript
关于取不到由location.href提交而来的上级页面地址的解决办法
Jul 30 Javascript
IE6下focus与blur错乱的解决方案
Jul 31 Javascript
js 表单提交后按钮变灰的实例代码
Aug 16 Javascript
javascript的replace方法结合正则使用实例总结
Jun 16 Javascript
利用Jasmine对Angular进行单元测试的方法详解
Jun 12 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
May 04 Javascript
解决vue中修改export default中脚本报一大堆错的问题
Aug 27 Javascript
Vue源码之关于vm.$delete()/Vue.use()内部原理详解
May 01 Javascript
DatePickerDialog 自定义样式及使用全解
Jul 09 Javascript
vue与iframe之间的信息交互的实现
Apr 08 Javascript
JavaScript原始值与包装对象的详细介绍
May 11 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
php4的彩蛋
2006/10/09 PHP
PHP+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
基于pear auth实现登录验证
2010/02/26 PHP
PHP中source #N问题的解决方法
2014/01/27 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
php获取图片信息的方法详解
2015/12/10 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
原生js写的放大镜效果
2012/08/22 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
2015/09/05 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
dul无法加载bootstrap实现unload table/user恢复
2016/09/29 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
Vue传参一箩筐(页面、组件)
2019/04/04 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
2019/11/14 Javascript
小程序新版订阅消息模板消息
2019/12/31 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
2021/02/02 Python
MCM英国官网:奢侈皮具制品
2017/04/18 全球购物
师范生教师实习自我鉴定
2013/09/27 职场文书
双拥工作宣传标语
2014/06/26 职场文书
幼儿园八一建军节活动方案
2014/08/27 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
法人身份证明书
2014/10/08 职场文书