2010-03-09 3 views
0

2 개의 img 요소가 있습니다. 2 이드는 그들을 위해 : 림과 림. limg은 로딩 gif이고 rimg는 이미지의 전체 버전입니다.처음으로 실제로로드하는 경우에만 이미지로드 중입니다.

내가 처음으로 사이트에 로그인하면
$("#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 함수이며 첫 번째 질문에 대한 내 코드에는 무엇이 있습니까? –

+0

donePic()은 그림이로드되었음을 알려줍니다. 여기에 입력 한 경우 : if (pic.complete) donePic(), 이는 그림이 캐시되고 즉시로드되고 다른로드됩니다. 이 경우에는 donePic() 함수는 그림이로드 된 경우에만 호출됩니다. 그러나 첫 번째 태그 (if 부분)는 그림이 캐시에 있는지 여부를 결정하는 데 도움을 줄 수 있습니다. 너 한테 달려있다. – Ervin

+0

하지만로드가 끝나면 바로 donePic을 호출하거나 그림을로드 한 후에 호출해야합니다. 즉, donePic은 그림을로드하지 않고로드하는 gif가 아니라는 의미입니다. 거기서, 나는 수표를 끝낼 때까지 항상 로딩 GIF 쇼를 가질 것이다. 짐을 싣고 아무것도하지 않으려면 완료해야합니까? –