js等待图片加载完毕后再显示
假如有2张图片1.jpg2.jpg,loading图片:loading.jpg代码如下<imgsrc='1.jpg'id='bigimg'/><aonclick='cha...
假如有2张图片 1.jpg 2.jpg,loading图片:loading.jpg
代码如下
<img src='1.jpg' id='bigimg'/>
<a onclick='change(this)' res='1.jpg'>第一张</a>
<a onclick='change(this)' res='2.jpg'>第二张</a>
当我点击第二张的时候,我需要获取res属性的值,并把它赋给id是bigimg的img的src这个属性,那么浏览器应该就去请求张图片,这时,我需要实现的是:如果图片还没有下载下来,img就一直显示loading.jpg图片,如果下载下来,就直接显示下载的图片,请问change这个js函数如何写? 展开
代码如下
<img src='1.jpg' id='bigimg'/>
<a onclick='change(this)' res='1.jpg'>第一张</a>
<a onclick='change(this)' res='2.jpg'>第二张</a>
当我点击第二张的时候,我需要获取res属性的值,并把它赋给id是bigimg的img的src这个属性,那么浏览器应该就去请求张图片,这时,我需要实现的是:如果图片还没有下载下来,img就一直显示loading.jpg图片,如果下载下来,就直接显示下载的图片,请问change这个js函数如何写? 展开
1个回答
展开全部
function change(obj){
var img = new Image();
var loadimg = new Image();
var bigimg = getElementById("bigimg");
loadimg.src = "loading.jpg";
bigimg.innerHTML="";
bigimg.style.width=String(loadimg.width)+"px";
bigimg.appendChild(loadimg);
if(img.complete) {
bigimg.innerHTML="";
bigimg.style.width=String(img.width)+"px";
bigimg.appendChild(img);
return;
}
img.onload = function(){
bigimg.innerHTML="";
bigimg.style.width=String(img.width)+"px";
bigimg.appendChild(img);
}
img.src = obj.res;
}
试试~~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询