使用jquery预加载图像

时间:2010-04-21 15:06:41

标签: jquery image loading preloading

更新

第一个附加空图像和带有一些文本的跨度

隐藏加载图片,加载图片后显示图片

var pathimg = "path/to/image" + "?" + (new Date()).getTime();

$('#somediv').append('<div><span>loading..</span><img  id="idofimage" src="" alt="" ></div>')

jQuery("#idofimage").hide().attr({"src":pathimg})
                .load(function() {
                jQuery(this).show();
}); 

旧帖子 好吧,我花了2天试图预装图像,但没有成功!我有这个功能:

jQuery.getlastimage = function(id) {
    $.getjs();
        $.post('operations.php', {'operation':'getli', 'id':id,}, function(lastimg){
            $("#upimages" + id).html('<a href="uploads/'+ lastimg +'?'+ (new Date()).getTime() +'"><img class="thumbs" id="' + id + '" alt="' + lastimg + '" src="uploads/' + lastimg +'?'+ (new Date()).getTime() + '" /></a>');

        });
};

lastimg是图像的名称

虽然图像加载我想要显示gif或文本“正在加载...”。

该函数将得到如下内容:

<div class="upimage">
  <ul class="thumbs" id="upimagesQueue">    
  **<li id="#upimagesRIFDIB">
            <a href="uploads/0001.jpg?1271800088379">
                <img src="uploads/0001.jpg?1271800088379" alt="0001.jpg" id="RIFDIB" class="thumbs">
            </a>
    </li>**

    <li>
          ....
    </li>
  </ul>
</div>

我试过这样:

    ...
$.post('operations.php', {'operation':'getli', 'id':id,}, function(lastimg){
$("#upimages" + id)
.html('<a href="uploads/'+ lastimg +'?'+ (new Date()).getTime() +'"><img class="thumbs" id="' + id + '" alt="' + lastimg + '" src="uploads/' + lastimg +'?'+ (new Date()).getTime() + '" /></a>')
.hide()
.load(function() {
    $(this).show();
});

...

但所有<li>都会隐藏,加载后会显示图片,我希望<li>能够在其中添加gif或文字,并在图片加载后显示链接和图片到apear!

怎么做? 有人有想法吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

这绝对是一个没有简单答案的问题。

jQuery: Dynamic image handling (waiting for load)

当我之前询问时,我在那个帖子中得到了一些非常好的建议,我绝不是第一个要问的人。

从各方面来看,检查的最佳方法似乎是循环一个函数,设置一个间隔,并等待你在每个图像上设置的触发器为负载返回正值,但我发现,即使它适用于AJAX页面加载,它不是防弹的。