|
蓝森林 http://www.lslnet.com 2006年8月25日 8:28
js控制图片缩略图,有时候行有时候不行
我用JS控制图片按比例缩放,但是有时候可以,有时候就不行
谁能告诉我这个是什么问题?
会不会是因为IE有缓存的原因,用JS控制大小的话<img>标签里就没有width和height属性了,如果从缓存读取的话因为<img>里没有宽高就直接显示图片原始大小了??但是我已经加了禁止缓存了,还是不行
地址 http://www.oone.cn
代码
function imgSize(img,width,height)
{
//alert(img.readyState);
if(img.readyState!="complete")
{
alert(img.readyState);
return false;//确保图片完全加载
}
w=img.width
h=img.height
//alert(w+":"+h+" "+width+":"+height);
if(w>width && w > h)
{
img.width=width;
img.height = parseInt(h*(width / w));
}
if(h>height && h > w )
{
img.height =height
img.width=parseInt(w*(height / h));
}
//alert("width:"+img.width+"height:"+img.height)
}
<img src="images/up/pinpai/p_200642023254217570.jpg" alt="" hspace="5" vspace="10" border="0" onload="imgSize(this,125,92)" > |
首页刷新一下图片缩小正常。.但是点左边菜单的首页再进到首页的话就没有缩小了,郁闷的要死 |
搞定了。.代码改了下..发现img标签的onload和readyState==complete完毕居然还是得不到高宽,还是用if(widht==0 || height==0)然后设置1秒后再调用一次函数这样才搞定的,郁闷
onload和readyState=="complete"应该是加载图片完了的事件,居然得不到高宽
function imgSize(imgId,width,height)
{
//alert(ximg.readyState);
ximg=document.getElementById(imgId)
if(ximg.readyState!="complete")
{
//alert(ximg.readyState);
return false;//确保图片完全加载
}
//alert(ximg.src);
w=ximg.width
h=ximg.height
//document.getElementById("xx").innerHTML+="xx_"+w+":"+h+"<br>";
if(w==0 || h==0)
{
//document.getElementById("xx").innerHTML+="imgSize('"+imgId+"',"+width+","+height+")<br>";
setTimeout("imgSize('"+imgId+"',"+width+","+height+")",1000)
return;
}
//alert(w+":"+h+" "+width+":"+height);
try
{
if(w>width && w > h)
{
ximg.width=width;
ximg.height = parseInt(h*(width / w));
}
if(h>height && h > w )
{
ximg.height =height
ximg.width=parseInt(w*(height / h));
}
//alert("width:"+ximg.width+"height:"+ximg.height)
//str=ximg.width+":"+ximg.height+"<br>";
//document.getElementById("xx").innerHTML+=str;
}
catch(e)
{
}
ximg=null;
} |
|