灰儿 发表于 2012-2-9 10:44:55

JS代码控制图片等比缩放和截取的方法

问题:
假如一张图片大小是300*400
我想先把他按比例缩放至150*200
然后再网页上只显示其中的150*100(截取其中一部分)
请问html和css里面分别如何定义?



JS代码(随便放哪里):
<script language="javascript">
<!--
var flag=false;
function DrawImage(ImgD){
var image=new Image();
image.src=ImgD.src;
if(image.width>0 && image.height>0){
   flag=true;
   if(image.width/image.height>= 180/110){
      if(image.width>180){
       ImgD.width=180;
       ImgD.height=(image.height*110)/image.width;
      }else{
       ImgD.width=image.width;
       ImgD.height=image.height;
      }
      /*ImgD.alt="bigpic"   */
   }
   else{
      if(image.height>110){
       ImgD.height=110;
       ImgD.width=(image.width*110)/image.height;
      }else{
       ImgD.width=image.width;
       ImgD.height=image.height;
      }
       /*ImgD.alt="bigpic"   */
   }
}
}

//-->
</script>


图片使用的地方:
<img src="图片" border=0 width="180" height="110">
width="180" height="110"   注意这里最好限定,如果不限定加载图时会成原大,然后再缩小,这个过程如果图大了很难看的.这里是宽度和高度,在前面的JS里改,这里也作相应的改.

图不会变形,只会按比列缩 alt 解决不了.

灰儿 发表于 2012-2-9 11:45:07

这个CSS是做不到的需要用js读出图片的宽和高然后js控制输出到CSS 显示一个宽度,高度等于这个显示的宽度 * 原来的宽高比
下面是JS代码<script language="javascript">
function DrawImage(ImgD,kw,kh)
{
var image=new Image();
image.src=ImgD.src;
if(image.height<image.width)//说明宽》高==》以宽为标准
{
    if(image.width>kw)
    {
   ImgD.width=kw;
   ImgD.height=(image.height*kw)/image.width;
    }
else
{
   ImgD.width=image.width;
   ImgD.height=image.height;
}
}
else//以高为标准
{
    if(image.height>kh)
    {
   ImgD.height=kh;
   ImgD.width=(image.width*kh)/image.height;
    }
else
{
   ImgD.width=image.width;
   ImgD.height=image.height;
}
}
}
</script>这是调用在img上的<img src="upload/smallpic/1.jepg" onload='javascript: DrawImage(this,120,120);' />这里的宽高都是我是设置120 ,如果高大于宽,那么就高120 宽成比例变小。 反之就宽120高成比例变小



页: [1]
查看完整版本: JS代码控制图片等比缩放和截取的方法