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 相关文章推荐
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
May 24 Javascript
Jquery.addClass始终无效原因分析
Sep 08 Javascript
jquery 字符串切割函数substring的用法说明
Feb 11 Javascript
javascript的日期对象、数组对象、二维数组使用说明
Dec 22 Javascript
jquery操作复选框checkbox的方法汇总
Feb 05 Javascript
javascript结合CSS实现苹果开关按钮特效
Apr 07 Javascript
面向切面编程(AOP)的理解
May 01 Javascript
jquery zTree异步加载简单实例讲解
Feb 25 Javascript
利用node.js制作命令行工具方法教程(一)
Jun 22 Javascript
vue中实现滚动加载更多的示例
Nov 08 Javascript
vue项目中极验验证的使用代码示例
Dec 03 Javascript
React实现全选功能
Aug 25 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制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
php绘制一条直线的方法
2015/01/24 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
php常用数组函数实例小结
2016/12/29 PHP
Jquery AJAX 用于计算点击率(统计)
2010/06/30 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
jQuery-ui引入后Vs2008的无智能提示问题解决方法
2014/02/10 Javascript
js函数名与form表单元素同名冲突的问题
2014/03/07 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
Vue.js 表单校验插件
2016/08/14 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
微信小程序自定义select下拉选项框组件的实现代码
2018/08/28 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
2018/09/25 Javascript
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
Python map和reduce函数用法示例
2015/02/26 Python
Python抓取百度查询结果的方法
2015/07/08 Python
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
python docx 中文字体设置的操作方法
2018/05/08 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
基于Python实现签到脚本过程解析
2019/10/25 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
pytorch之inception_v3的实现案例
2020/01/06 Python
使用Python实现音频双通道分离
2020/12/25 Python
详解css3 object-fit属性
2018/07/27 HTML / CSS
VisionPros美国站:加拿大在线隐形眼镜和眼镜零售商
2020/02/11 全球购物
2014年入党积极分子学习三中全会思想汇报
2014/09/13 职场文书
个人优缺点总结
2015/02/28 职场文书
电影雨中的树观后感
2015/06/15 职场文书
不要在HTML中滥用div
2021/05/08 HTML / CSS
Vue实现下拉加载更多
2021/05/09 Vue.js
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS