网站打开很慢,怎么通过jquery实现图片延迟加载

网站上图片太多,会导致网站打开很慢。
我们可以通过图片延迟加载来解决这个问题,这里我们要用到jquery.lazyload.js这个插件

插件使用方法:
首先引入jquery和jquery.lazyload.js

<script src="jquery.min.js"></script>
<script src="jquery.lazyload.js"></script>

对页面上所有图片进行延迟加载

<script type="text/javascript" charset="utf-8">
  $(function() {
      $("img").lazyload({effect: "fadeIn"});
  });
</script>

也可以给图片加上class="lazy",然后选择class="lazy"的元素进行延迟加载

<script type="text/javascript" charset="utf-8">
  $(function() {
      $("img.lazy").lazyload({effect: "fadeIn"});
  });
</script>

下面是lazyload方法的所有参数

$("img.lazy").lazyload({
  placeholder : "img/grey.gif", //用图片提前占位
    // placeholder,值为某一图片路径.此图片用来占据将要加载的图片的位置,待图片加载时,占位图则会隐藏
  effect: "fadeIn", // 载入使用何种效果
    // effect(特效),值有show(直接显示),fadeIn(淡入),slideDown(下拉)等,常用fadeIn
  threshold: 200, // 提前开始加载
    // threshold,值为数字,代表页面高度.如设置为200,表示滚动条在离目标位置还有200的高度时就开始加载图片,可以做到不让用户察觉
  event: 'click',  // 事件触发时才加载
    // event,值有click(点击),mouseover(鼠标划过),sporty(运动的),foobar(…).可以实现鼠标莫过或点击图片才开始加载,后两个值未测试…
  container: $("#container"),  // 对某容器中的图片实现效果
    // container,值为某容器.lazyload默认在拉动浏览器滚动条时生效,这个参数可以让你在拉动某DIV的滚动条时依次加载其中的图片
  failurelimit : 10 // 图片排序混乱时
     // failurelimit,值为数字.lazyload默认在找到第一张不在可见区域里的图片时则不再继续加载,但当HTML容器混乱的时候可能出现可见区域内图片并没加载出来的情况,failurelimit意在加载N张可见区域外的图片,以避免出现这个问题.
});

有的时候这个插件会跟我们页面上的其它js冲突,可能会报:$(...).lazyload is not a function的错误
我们如何解决这个冲突呢?
解决这类问题方法简单概括为:在使用jQuery类时使用jQuery,在使用函数时使用$符号.

<script type="text/javascript" src="/wp-includes/js/jquery/jquery.min.js"></script>
<script type="text/javascript" src="/wp-includes/js/jquery/jquery.lazyload.js"></script>
<script type="text/javascript">
    jQuery(document).ready(function ($) {
        $("img").lazyload({
            placeholder: "/wp-includes/images/loading03.gif",
            effect: "fadeIn"
        });
    });
</script>

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: