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 相关文章推荐
自动更新作用
Oct 08 Javascript
DOM Scripting中的图片切换[兼容Firefox]
Jun 12 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
Jun 29 Javascript
javascript页面上使用动态时间具体实现
Mar 18 Javascript
node.js中的querystring.stringify方法使用说明
Dec 10 Javascript
JavaScript数组常用方法
Mar 02 Javascript
基于jquery实现左右上下移动效果
May 02 jQuery
js canvas画布实现高斯模糊效果
Nov 27 Javascript
详解关于webpack多入口热加载很慢的原因
Apr 24 Javascript
微信小程序上线发布流程图文详解
May 06 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
May 31 Javascript
JavaScript中window和document用法详解
Jul 28 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
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
2012/07/15 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
javascript prototype原型操作笔记
2009/12/07 Javascript
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
JS自动适应的图片弹窗实例
2013/06/29 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
2015/11/07 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
简单理解vue中el、template、replace元素
2016/10/27 Javascript
Angular.js跨controller实现参数传递的两种方法
2017/02/20 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
3分钟读懂移动端rem使用方法(推荐)
2019/05/06 Javascript
Vue通过配置WebSocket并实现群聊功能
2019/12/31 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
Django实现组合搜索的方法示例
2018/01/23 Python
python实现图书管理系统
2018/03/12 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
Python图像处理模块ndimage用法实例分析
2019/09/05 Python
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
文史专业毕业生自荐信
2013/11/17 职场文书
运动会邀请函范文
2014/02/06 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
人身损害赔偿协议书范本
2014/09/27 职场文书
2015年党风廉政建设责任书
2015/01/29 职场文书
起诉书范文
2015/05/20 职场文书
创业计划书之物流运送
2019/09/17 职场文书
Python打包exe时各种异常处理方案总结
2021/05/18 Python
解决tk mapper 通用mapper的bug问题
2021/06/16 Java/Android
java设计模式--七大原则详解
2021/07/21 Java/Android
Win11筛选键导致键盘失灵怎么解决? Win11关闭筛选键的技巧
2022/04/08 数码科技