蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 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;
}




Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com