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 正则表达式相关应介绍
Nov 27 Javascript
js实时获取系统当前时间实例代码
Jun 28 Javascript
jQuery实现Email邮箱地址自动补全功能代码
Nov 03 Javascript
跨域资源共享 CORS 详解
Apr 26 Javascript
JSON对象 详解及实例代码
Oct 18 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
Mar 26 Javascript
使用百度地图实现地图网格的示例
Feb 06 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
Jan 28 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
Oct 24 Javascript
vue项目初始化到登录login页面的示例
Oct 31 Javascript
JavaScript监听一个DOM元素大小变化
Apr 26 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
Jun 10 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
Session的工作方式
2006/10/09 PHP
PHP 开发环境配置(测试开发环境)
2010/04/28 PHP
php模板中出现空行解决方法
2011/03/08 PHP
php实现的短网址算法分享
2014/06/20 PHP
php中注册器模式类用法实例分析
2015/11/03 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
PHP PDOStatement::getColumnMeta讲解
2019/02/01 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
js电话号码验证方法
2015/09/28 Javascript
node-http-proxy修改响应结果实例代码
2016/06/06 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
flag和jq on 的绑定多个对象和方法(必看)
2017/02/27 Javascript
深入解析nodejs HTTP服务
2017/07/25 NodeJs
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法
2019/11/05 Javascript
Node.js学习之内置模块fs用法示例
2020/01/22 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
python抓取京东商城手机列表url实例代码
2013/12/18 Python
Python判断列表是否已排序的各种方法及其性能分析
2016/06/20 Python
python常用知识梳理(必看篇)
2017/03/23 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
医院办公室主任职责
2013/12/29 职场文书
《狐假虎威》教学反思
2014/02/07 职场文书
书法兴趣小组活动总结
2014/07/07 职场文书
新郎答谢词
2015/01/04 职场文书
抗洪救灾感谢信
2015/01/22 职场文书
索赔员岗位职责
2015/02/15 职场文书
2015年中秋节演讲稿
2015/03/20 职场文书
情况说明书格式及范文
2019/06/24 职场文书