找回密码
 注册
首页 ≡≡网络技术≡≡ WEB前端 JS代码控制图片等比缩放和截取的方法

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

灰儿 2012-2-9 10:44:55
问题:
假如一张图片大小是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  高成比例变小




您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。