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 相关文章推荐
ExtJS Store的数据访问与更新问题
Apr 28 Javascript
JS JSON对象转为字符串的简单实现方法
Nov 18 Javascript
jquery通过select列表选择框对表格数据进行过滤示例
May 07 Javascript
js星星评分效果
Jul 24 Javascript
JavaScript参数个数可变的函数举例说明
Oct 10 Javascript
JavaScript中的数组特性介绍
Dec 30 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
Apr 26 Javascript
深入理解js中this的用法
May 28 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
Aug 10 Javascript
Js自定义多选框效果的实例代码
Jul 05 Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
May 01 Javascript
Vue3实现简易音乐播放器组件
Aug 14 Vue.js
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提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
PHP通过iconv将字符串从GBK转换为UTF8字符集
2011/07/18 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
fckeditor 获取文本框值的实现代码
2009/02/09 Javascript
javascript之学会吝啬 精简代码
2010/04/25 Javascript
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
浅谈Javascript事件处理程序的几种方式
2012/06/27 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
纯javascript代码实现计算器功能(三种方法)
2015/09/07 Javascript
JS函数的几种定义方式分析
2015/12/17 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
关于Django外键赋值问题详解
2017/08/13 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
2017/10/16 Python
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
pandas 小数位数 精度的处理方法
2018/06/09 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
pandas 层次化索引的实现方法
2019/07/06 Python
Python自动创建Excel并获取内容
2020/09/16 Python
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
css3media响应式布局实例
2016/07/08 HTML / CSS
奥地利网上现代灯具和灯饰店:Lampenwelt.at
2018/01/29 全球购物
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
博士生求职信
2014/07/06 职场文书
学生不讲诚信检讨书
2014/09/29 职场文书
初中作文评语集锦
2014/12/25 职场文书
企业介绍信范文
2015/01/30 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书
PHP 技巧 * SVG 保存为图片(分享图生成)
2021/04/02 PHP
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang