改变思路解决问题了
在imgstate里完成调整
function imgstate()
{
//alert(document.images);
for(i=0;i<document.images.length;i++)
{
go(document.images[i]);
}
}
imgstate();这样就都调整了,但还是想搞清楚上面到底是什么原因造成的

解决方案 »

  1.   

    搞不动你为什么要var iobj = new Image();直接计算不是更好吗
      

  2.   

    看看我刚写的<img src="http://localhost/UserFiles/SmileyImages/pretty_smile.jpg" onreadystatechange=resizeImg(this)>
    <img src="http://zi.csdn.net/business/zhaopin_2/images/pic_03.gif" onreadystatechange=resizeImg(this)><script language="javascript" type="text/javascript">
    function resizeImg(object){
    if(object.readyState=="complete"){
    var imgWidth=200;
    var imgHeight=200;
    var objImgWidth=object.offsetWidth;
    var objImgHeight=object.offsetHeight;
    var WidthHeightRate=objImgWidth/objImgHeight;
    if(WidthHeightRate>1){
    object.width=imgWidth;
    object.height=imgWidth/WidthHeightRate;
    }
    if(WidthHeightRate==1){
    object.width=imgWidth;
    object.height=imgHeight;
    }
    if(WidthHeightRate<1){
    object.height=imgHeight;
    object.width=imgHeight*WidthHeightRate;
    }
    }
    }
    </script>
      

  3.   

    因为直接用obj.width得到的是定义的width,所以用了一个iobj,这样得到的是图片的原始尺寸我不知道用offsetWidth可以得到,这样的话就不用new Image()了根本的问题是图片多了时会有部分图片没有调整完成。
      

  4.   

    为什么用onreadystatechange而不直接用onload事件
      

  5.   

    没有特意要用onreadystatechange 用onload也一样
      

  6.   

    我写的那个调用是
    <img src="http://localhost/UserFiles/SmileyImages/pretty_smile.jpg" onreadystatechange=resizeImg(this) />
    注意没有指明长宽,这样就是默认的长宽,然后用offset取偏移量
      

  7.   

    http://community.csdn.net/Expert/topic/4875/4875265.xml?temp=.1705133
      

  8.   

    试验了一下 offsetWidth得不到原始图片尺寸
      

  9.   

    是指定义了 img的width height的情况下,如果一开始不定义范围大小,就有可能出现图片先以原始尺寸显示然后缩放的现象
      

  10.   

    不会啊~~~
    http://studentempire.org/test/test.htm