显示“加载...”图像的好方法是什么?

时间:2010-09-23 03:30:56

标签: javascript jquery image-loading

我正在使用div,其中包含任意数量的img元素。现在,每个img都有以下CSS:

#content > img {
display: none;
position: absolute;
top: 0px;
left: 0px;
}

图像可循环显示,并具有依次显示和隐藏它们的功能。但是,在加载每个图像时,我想显示“加载...”图像。我想使用JavaScript / jQuery将每个不完整图像的源交换为“loading ...”图像,同时仍然允许它加载。什么是一种精益而卑鄙的方式来做到这一点?

2 个答案:

答案 0 :(得分:5)

$(function(){
   $('<img>').attr('src','loading.gif'); // preload the "loading" image.

   $('#content > img').each(function(){
       var original = this.src;
       var $this = $(this);
       $this.attr('src','loading.gif'); // swap to loading image.
       $('<img>').attr('src',original)// pre-load original.
              .load(function(){
                 $this.attr('src',original); // swap it back when pre-load is done. 
              });
   })
});

crazy example

答案 1 :(得分:1)

有一个imagesLoaded插件可以在这里找到:http://gist.github.com/268257

只需显示加载图片,绑定到imagesLoaded事件,当它被触发时,隐藏加载图片。

<强>更新

实际上,jQuery已经内置了检测加载的方法:http://api.jquery.com/load-event/