之前一直有关注过Jquery.LazyLoad.js这个特效,但一直没有用,这几天研究了一下,并应用于实际中,对网站SEO方面没有什么帮助,不过可以节省一些流量,对于大网站来说显的尤为重要,至于节省了多少流量我无从统计。

从网上下载来的版本多多少少都有些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.jb51.net/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.jb51.net/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.jb51.net/js/2011/lazyload/Js/lazyload/jquery.js"></script>
<script type="text/javascript" src="http://demo.jb51.net/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张可见区域外的图片,以避免出现这个问题.

转载于:https://www.cnblogs.com/osmond/archive/2011/10/09/2203820.html

Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件相关推荐

  1. 利用Jquery Lazyload JS插件实现网页图片延迟加载

    Jquery Lazyload是一款网页图片延迟加载JS插件,本文介绍该JS的使用方法. 最新的jquery lazyload可以单独使用(即不依赖jquery),本文介绍的是依赖jquery的使用及 ...

  2. jquery.lazyload.js详解

    简介 lazyload.js用于长页面图片的延迟加载,视口外的图片会在窗口滚动到它的位置时再进行加载,这是与预加载相反的. 优点: 它可以提高页面加载速度: 在某些情况清晰它也可以帮助减少服务器负载. ...

  3. jQuery图片延迟加载插件jQuery.lazyload

      查看演示   website   立即下载 插件描述:jQuery图片延迟加载插件jQuery.lazyload,使用延迟加载在可提高网页下载速度.在某些情况下,它也能帮助减轻服务器负载. 使用方 ...

  4. magento effects.js jquery.lazyload.js 冲突

    2019独角兽企业重金招聘Python工程师标准>>> 当这两个js并存时,会造成加载图片闪烁的冲突问题 原因: jquery.lazyload.js会触发叫"appear ...

  5. 利用jquery.form.js实现Ajax无刷新图片上传及预览功能

    某些时候当我们做登记页面的时候可能需要上传图片,并实现即时预览的功能. 如果只是预览而不上传,可以使用ImagePreview来实现,方便简单.如果需要上传,那么你也可以使用uploadify无刷新上 ...

  6. vue js 前端导出 下载 打印 图片 pdf html 局部打印

    html2canvas将HTML内容写入Canvas生成图片 print.js  打印插件 第一种方法: 原生js printDeal(val) {var printBox = document.ge ...

  7. jquery.inputmask.js 输入框input输入内容格式限制插件

    今天使用的就是这几行代码. 利用 jquery.inputmask.js  下载地址(如果打不开的话 请FQ http://plugins.jquery.com/jquery.inputmask/) ...

  8. 图片预加载、图片延迟加载插件

    网站上经常会有这种现象. 1.带有图片的列表页面图片没有加载过来时候,页面排版是乱的. 2.图片加载失败后显示一个裂痕玻璃图片 并不友好 为了解决这些现象 我自己封装了了个插件: /*图片加载未完成显 ...

  9. 使用jq.lazyload.js,解决设置loading图片的问题

    最近在使用lazyload的时候,遇上一个问题.当对img做宽100%时,就是placeholder的loading图片也会100%宽,这样一般来说loading图片就会变得很大.实在是不能应用到项目 ...

最新文章

  1. 频率分布直方图组距如何确定_QC七大手法之直方图法,快快转发、收藏!
  2. 每日一道面试题(第7期)---Android补间动画与属性动画的区别
  3. html怎么消除打印的进纸,打印机缺纸状态怎么消除?
  4. Content-Type
  5. WorldWind学习系列六:渲染过程解析篇
  6. PMP试题 | 每日一练,快速提分 9.8
  7. 几点关于STM32CubeProgrammer的内容
  8. 会场安排问题(活动场次而不是会场场次)
  9. 复选框至少选择一项_如果没有设计师,您至少要选98种材料,学会35项工艺!...
  10. Kettle数据从txt到数据库表,表到文件
  11. 时间加减计算器_FRM计算器使用流程你知道吗?
  12. excel拆分单元格,然后每个拆分出的单元格沿用原未拆分单元格内容
  13. 综合素质计算机的知识考点,综合素质常识考题
  14. ArcGIS教程:什么是格网和经纬网?
  15. 通信电子电路(一)通电课程背景 以及选频网络概念
  16. 【VBA】使用ReadTXT功能,读取巨大文件的加速方法
  17. html左侧抽屉,js抽屉drawer插件
  18. 【无人机】基于遗传算法实现无人机编队位置规划附matlab代码
  19. ls 显示目录内容列表
  20. 排气管消声器焊接机器人如何编程_焊接机器人编程技巧总结

热门文章

  1. 面向对象的软件测试技术
  2. 编译参数-ObjC的说明
  3. 织梦添加幻灯片的方法
  4. Android Fragment详解(二):Fragment创建及其生命周期
  5. java tabpanel_java cs tab点击切换标签的实现 panel
  6. Oracle数据库安装响应文件,1.2.6 步骤6:配置应答文件,然后运行安装程序(2)...
  7. 软件工程大学生职业生涯规划_大学生职业生涯规划的现实意义
  8. ipad如何连接电脑_超能办公课堂丨电脑如何使用无线网络连接方式安装驱动程序...
  9. 安卓应用如何引用动态库
  10. 字符串排序 java_java字符串排序