• Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件


    之前一直有关注过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(/(chrome|opera|safari|msie|firefox)/) || ['', '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 
    } 
    } 


    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张可见区域外的图片,以避免出现这个问题.

    echo.js参考:http://toddmotto.com/echo-js-simple-javascript-image-lazy-loading/

  • 相关阅读:
    Python 以指定列宽格式化字符串
    Windows环境下QWT安装及配置
    iOS用户体验之-modal上下文
    android-调用系统的ContentPrivder获取单张图片实现剪切做头像及源代码下载
    Codeforces Round #253 (Div. 1) A Borya and Hanabi
    剑指offer 面试题9
    Memcache应用场景介绍
    [Unity-22] Coroutine协程浅析
    ZOJ 2706 Thermal Death of the Universe (线段树)
    为什么不建议用Table布局
  • 原文地址:https://www.cnblogs.com/mrxia/p/4220740.html
Copyright © 2020-2023  润新知