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时无响应数据的解决方法
May 25 Javascript
JS中FRAME的操作问题实例分析
Oct 21 Javascript
jQuery实现高亮显示的方法
Mar 10 Javascript
jQuery判断数组是否包含了指定的元素
Mar 10 Javascript
javascript中call apply 的应用场景
Apr 16 Javascript
JavaScript操作选择对象的简单实例
May 16 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
Dec 14 Javascript
JavaScript实现动态增删表格的方法
Mar 09 Javascript
深入对Vue.js $watch方法的理解
Mar 20 Javascript
基于AngularJS实现表单验证功能
Jul 28 Javascript
快速解决vue在ios端下点击响应延时的问题
Aug 27 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
Sep 27 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简单预防sql注入的方法
2016/09/27 PHP
JavaScript中常用的运算符小结
2012/01/18 Javascript
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
2013/04/26 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
禁止ajax缓存获取程序最新数据的方法
2013/11/19 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
Angular2 PrimeNG分页模块学习
2017/01/14 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
2018/03/21 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
vue 实现锚点功能操作
2020/08/10 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
[52:09]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第二场
2014/05/26 DOTA
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
[01:03:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第一场 1月29日
2021/03/11 DOTA
详细介绍Python语言中的按位运算符
2013/11/26 Python
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
python计算两个数的百分比方法
2018/06/29 Python
Python Matplotlib实现三维数据的散点图绘制
2019/03/19 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
英国领先的高级美容和在线皮肤诊所:Face the Future
2020/06/17 全球购物
新电JAVA笔试题目
2014/08/31 面试题
Linux如何为某个操作添加别名
2013/03/01 面试题
Unix/Linux开发面试题
2016/08/16 面试题
房产公证书范本
2014/04/10 职场文书
服务口号大全
2014/06/11 职场文书
党支部季度考核意见
2015/06/02 职场文书
初中班主任教育随笔
2015/08/15 职场文书
2019秋季运动会口号
2019/06/25 职场文书
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python