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 AJAX 中文乱码问题解决
Jun 05 Javascript
jquery得到font-size属性值实现代码
Sep 30 Javascript
jQuery拖拽div实现思路
Feb 19 Javascript
ExtJS4 表格的嵌套 rowExpander应用
May 02 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
May 14 Javascript
jQuery中on()方法用法实例
Jan 19 Javascript
js实现跨域访问的三种方法
Dec 09 Javascript
JavaScript中 ES6 generator数据类型详解
Aug 11 Javascript
JS跨域请求外部服务器的资源
Feb 06 Javascript
浅谈JS验证表单文本域输入空格的问题
Feb 14 Javascript
Vue的路由及路由钩子函数的实现
Jul 02 Javascript
0基础学习前端开发的一些建议
Jul 14 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 simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
基于Zend的Config机制的应用分析
2013/05/02 PHP
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
php 魔术方法详解
2014/11/11 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
thinkPHP中U方法加密传递参数功能示例
2018/05/29 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
jQuery Ajax 全解析
2009/02/08 Javascript
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
vue移动端UI框架实现QQ侧边菜单组件
2018/03/09 Javascript
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
vue项目中引入Sass实例方法
2019/08/27 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
JS实现时间校验的代码
2020/05/25 Javascript
如何在Python中编写并发程序
2016/02/27 Python
Python程序员面试题 你必须提前准备!
2018/01/16 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
python实现集中式的病毒扫描功能详解
2019/07/09 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
如何进行有效的自我评价
2013/09/27 职场文书
上课迟到检讨书100字
2014/01/11 职场文书
企业管理标语
2014/06/10 职场文书
党章培训心得体会
2014/09/04 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python
Python标准库pathlib操作目录和文件
2021/11/20 Python