2010-03-09 73 views
0

我有2个img元素。 2身份证对他们来说:rimg和limg。 limg是加载gif,rimg是图像重新加载的全部vertsion。只显示载入图像的gif,如果它真的第一次加载它

的是显示图像之前完成装载负载代码:

$("#limg").fadeIn("fast"); 
$("#rimg").attr("src",$(that).attr("bsrc")).load(function(){ 
    $("#limg").fadeOut("fast",function() { 
     $("#rimg").attr("alt",$(that).attr("alt")); 
     $("#rimg").fadeIn("normal"); 
}); 
}); 

,如果我登录到该网站的第一次,它让我看到加载GIF。 如果它不是我第一次它仍然显示,但我需要的加载顺利没有这种加载 如何检查图像是否加载和缓存之前显示加载gif?

回答

0

我认为这是您的唯一解决方案:如果您将以下内容构建到您的jQuery脚本中,那么它将起作用。

var pic=new Image(x,y);//x,y is optional 
pic.src= //path; 

if(pic.complete) donePic() 
else pic.onload= donePic; 

如果你把它放在一个计时器中,那么你会知道它何时被加载。

+0

这两种情况下,如果你打电话donePic 会不会给你带来相同的结果? 是我在第一个问题的代码中的donePic函数? – 2010-03-09 09:34:51

+0

donePic()告诉你图片已加载。 如果它进入这里:if(pic.complete)donePic(),这意味着图片被缓存,并立即加载,否则将被加载。在这种情况下,donePic()函数将仅在图片加载完成时调用。 但第一个标签(if部分)可以帮助您确定图片是否在缓存中。在此之后由你决定。 – Ervin 2010-03-09 09:51:16

+0

但它所做的是,如果它被加载或调用它完成加载后立即调用donePic ...这意味着donePic处理图片...不与加载gif。那么,我将一直有加载gif表演,直到完成检查。 我不需要做只是在负载和完成什么都不做? – 2010-03-09 10:04:20

相关问题