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 相关文章推荐
浏览器无法运行JAVA脚本的解决方法
Jan 09 Javascript
jquery 新建的元素事件绑定问题解决方案
Jun 12 Javascript
javascript 闭包详解
Feb 15 Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
Jun 19 Javascript
简单实现的JQuery文本框水印插件
Jun 14 Javascript
Vue 进阶教程之v-model详解
May 06 Javascript
vue 项目如何引入微信sdk接口的方法
Dec 18 Javascript
通过webpack引入第三方库的方法
Jul 20 Javascript
angularjs1.5 组件内用函数向外传值的实例
Sep 30 Javascript
开发用到的js封装方法(20种)
Oct 12 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
Nov 03 Javascript
jquery实现点击左右按钮切换图片
Jan 27 jQuery
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
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
php 图像函数大举例(非原创)
2009/06/20 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
2013/06/03 PHP
php 常用的系统函数
2017/02/07 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
js模仿hover的具体实现代码
2013/12/30 Javascript
js加入收藏夹代码(兼容ie/ff/op)
2014/05/16 Javascript
使用jQuery的attr方法来修改onclick值
2014/07/07 Javascript
jQuery实现的一个自定义Placeholder属性插件
2014/08/11 Javascript
javascript原型链继承用法实例分析
2015/01/28 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
2015/02/02 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
JS 设置Cookie 有效期 检测cookie
2017/06/15 Javascript
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)
2020/07/21 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
详解python多线程之间的同步(一)
2019/04/03 Python
Python range与enumerate函数区别解析
2020/02/28 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
Canvas与Image互相转换示例代码
2013/08/09 HTML / CSS
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
英国电气世界:Electrical World
2019/09/08 全球购物
俄罗斯最大的隐形眼镜销售网站:Ochkov.Net
2021/02/07 全球购物
公务员个人自我评价分享
2013/11/06 职场文书
中学生学雷锋演讲稿
2014/04/26 职场文书
施工安全承诺书
2014/05/22 职场文书
药剂专业求职信
2014/06/20 职场文书
中队活动总结
2014/08/27 职场文书
工伤事故赔偿协议书范文
2014/09/24 职场文书
建国大业观后感800字
2015/06/01 职场文书
基于Python的EasyGUI学习实践
2021/05/07 Python