作者musie (Sirius)
看板Ajax
标题Re: [问题] load里面有图
时间Thu Apr 5 10:03:36 2012
※ 引述《Qiqi (泼泼)》之铭言:
: //---js---//
: $('li').click(function(){
: $('div').hide('slow',function(){
: $(this).load('123.html',function(){
: $(this).show('slow');
: });
: });
: });
: //---123.html---//
: <img src="image.png" />
: --------------------------------
: 有没有办法在load後判定html里面的图片已经读取完再做show的动作?
: 因为第一次读取时会看不到show的动画,直接图片跳出来
: (因为show完了没东西,读完图才贸然呈现)
: -----------------------edit--------------
: 我不知道是不是我的表达方式太烂,所以没人看得懂我的问题
: 现在123.html只有一行图片的程式码
: <img src="image.png" />
: 但是这张图很大,譬如20MB
: 所以我在js用load後show出来会lag
: $('div').load('123.html',function(){ $(this).show('slow'); })
: div在show的过程会卡卡,因为图还在读的关系
: 有办法判定图读取完後再做show的动作吗?
javascript有提供预载图片功能..
var src = 'yourImage.png';
var imageCheck = new Image();
imageCheck.src = src;
function checkImage(){
//假如已经读完了
if(imageCheck.complete){
//do something you want
}
else{
//还没读完的话,3秒後再检查一次
setTimeout(checkImage, 3000);
}
}
乾脆把他写完了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.146.228.192
1F:→ LaPass:咦? @@ 看起来是个好东西 04/05 10:04
※ 编辑: musie 来自: 122.146.228.192 (04/05 10:09)
2F:推 Qiqi:但是这个应该是写在子页面的吧? 04/05 17:12
3F:→ Qiqi:所以我父页load子页时,一样是把DOM读完後再跑动画 04/05 17:13
4F:→ Qiqi:但是跑动画时,子页面的图还是没载完 04/05 17:14
5F:→ Qiqi:有办法在子页读完时,回报父页的load,再进行callback吗? 04/05 17:17
6F:→ musie:既然你都说你的子页只有一张图,何不用append贴上去呢? 04/05 17:25
7F:推 Qiqi:这只是假设,并不是真的只有一张图 04/05 17:41
8F:→ Qiqi:里面有图文,读出来会再用jscrollpane设定卷轴 04/05 17:43
9F:→ Qiqi:当图读比较久时,jscrollpane就只会设成文字的长度 04/05 17:44
10F:→ Qiqi:没办法取得确实的图+文的长度 04/05 17:44
11F:→ musie:那就跨iframe运作就好了.. 04/05 18:05
12F:→ musie:用parent.XX(); 来呼唤你父页的function 04/05 18:07