图片等javascript比例缩放,网上看了例子都是function resizImg(objImg,sWidth,sHeight),objImg是要缩放的图片Img,sWidth是Img外面容器的宽度,sWidth是Img外面容器的高度,然后直接用img的onload="resiImg(this,100,100)",其实这样不科学。例子:
下面图片是调用文章内页中的大图,比如大图900*600,大图缩放后是应该是300*200,Img外面容器的宽高是100*300。这造成了图片高度不够,宽度又太大了,所以不科学。所以,看看大神们有没有更好的解决方案,小白我需要一个图片自适应缩放的,大神们求赐。
图片等比例缩放JavaScript

解决方案 »

  1.   

    function resizImg(objImg,sWidth,sHeight) {
        if(objImg.offsetWidth/objImg.offsetHeight > sWidth/sHeight) {
            objImg.parentNode.style.width = sWidth + 'px';
        }
    }
      

  2.   

    function resizImg(objImg,sWidth,sHeight) {
        if(objImg.offsetWidth/objImg.offsetHeight > sWidth/sHeight) {
            objImg.parentNode.style.width = sWidth + 'px';
        } else {
            objImg.parentNode.style.width = sHeight + 'px';
        }
      

  3.   

    错了,应该是
    function resizImg(objImg,sWidth,sHeight) {
        if(objImg.offsetWidth/objImg.offsetHeight > sWidth/sHeight) {
            objImg.parentNode.style.width = sWidth + 'px';
        } else {
            objImg.parentNode.style.height = sHeight + 'px';
        }
    }  
      

  4.   

    width 与 height 只设置一个,另一边就按图片的原本比例自动适应了
      

  5.   

    提供另外一个思路,可以通过zoom值来控制图片显示的比例。先把外部的容器设置成溢出隐藏,页面加载后根据图片的大小和外部容器的大小计算显示的比例。这个,比7楼的要麻烦一些。用7楼的方法也要先判断一下图片的长宽比和外部容器的长宽比,来判断是设置图片的width还是height,另一个属性删掉就行了。