zoukankan      html  css  js  c++  java
  • jQuery.lazyload详解

    jQuery实现图片延迟加载,不知道是否可以节省带宽呢?
    有人知道吗?

    这究竟只是一个视觉特效还是真的能延迟加载减少服务器的请求呢?


    <script type="text/javascript" src="<?php bloginfo('template_directory');?>/js/jquery.lazyload.js"></script> 
    <script type="text/javascript"> 
    $(function() { 
    $("img").lazyload({ 
    effect : "fadeIn" 
    }); 
    }); 
    </script> 

    其中img是延迟加载所有图片,也可以根据不同模板作相应改动,比如我这个主题,可以改成#post img,这样只延迟加载#post 容器内的图片,否则可能影响到侧边图片的加载,主要是留言者头像可能会最后加载;

    fadeIn是图片显示效果

    这样基本就可以了!

    如果上面的功能可能没有达到你的要求,还有几个选项可供设置。

    可以设置阀值来控制 灵敏度

    $(“img”).lazyload({ threshold : 200 });   

    把阀值设置成200 意思就是当图片没有看到之前先load 200像素。当然了你也可以通过设置占位符图片和自定事件来触发加载图片事件

    $("img").lazyload({    
    placeholder : "img/grey.gif",    
    event : "click"   
    });   

    还可以通过定义effect 参数来定义一些图片显示效果

    $("img").lazyload({    
    placeholder : "img/grey.gif",    
    effect : "fadeIn"   
    });   

    事件触发加载,事件可以是任何 jQuery 时间, 如: click 和 mouseover. 你还可以使用自定义的事件, 如: sporty 和 foobar. 默认情况下处于等待状态, 直到用户滚动到窗口上图片所在位置. 在灰色占位图片被点击之前阻止加载图片, 你可以这样做:

    $("img").lazyload({    
    placeholder : "img/grey.gif",    
    event : "click"   
    });   

    延迟加载图片,Lazy Load 插件的一个不完整的功能, 但是这也能用来实现图片的延迟加载. 下面的代码实现了页面加载完成后再加载. 页面加载完成 5 秒后, 指定区域内的图片会自动进行加载.

    $(function() {    
    $("img:below-the-fold").lazyload({    
    placeholder : "img/grey.gif",    
    event : "sporty"   
    });    
    });    
    $(window).bind("load", function() {    
    var timeout = setTimeout(function() {$("img").trigger("sporty")}, 5000);    
    });   

    图片在容器里面你可以将插件用在可滚动容器的图片上, 例如带滚动条的 DIV 元素. 你要做的只是将容器定义为 jQuery 对象并作为参数传到初始化方法里面.

    CSS

    #container {    
    height: 600px;    
    overflow: scroll;    
    }   

    JavaScript 代码:

    $("img").lazyload({    
    placeholder : "img/grey.gif",    
    container: $("#container")    
    });   

    当图片不顺序排列,滚动页面的时候, Lazy Load 会循环为加载的图片. 在循环中检测图片是否在可视区域内. 默认情况下在找到第一张不在可见区域的图片时停止循环. 图片被认为是流式分布的, 图片在页面中的次序和 HTML 代码中次序相同. 但是在一些布局中, 这样的假设是不成立的. 不过你可以通过 failurelimit 选项来控制加载行为.

    $("img").lazyload({    
    failurelimit : 10    
    });  

  • 相关阅读:
    vue 高度 动态更新计算 calcHeight watch $route
    vue 自定义组件 v-model双向绑定、 父子组件同步通信【转】
    vue 异步请求数据后,用v-if,显示组件,这样初始化的值就在开始的时候传进去了
    vue $parent 的上一级 有可能不是父组件,需要好几层$parent 如果这样 还不如用 this.$emit
    vue render {} 对象 说明文档
    params.row[params.column.key] vue h函数 当前单元格 h函数 div 属性 值或数组 render
    upload 上传按钮组件 iview
    下拉列表事件 Dropdown iview
    this.treeData = JSON.parse(JSON.stringify(this.d)) 树的序列化反序列化
    tree iview treeData json数据 添加 selected 数据 要进行vue.set 进行响应式添加
  • 原文地址:https://www.cnblogs.com/wangxy/p/4961285.html
Copyright © 2011-2022 走看看