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

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

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

最佳答案

$(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

07-28 02:44
查看更多