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 解决不了.
这个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]