您的位置:首页 > 其它

动态改变图片大小来适应页面(转)

2008-12-04 19:11 183 查看
在网页中,如果一张图片大小超过图片容器页面元素大小,就会将页面撑得很难看。下面这段代码可以解决这个问题:

function picresize(obj,MaxWidth,MaxHeight){
obj.onload=null;
img=new Image();
img.src=obj.src;
if (img.width>MaxWidth && img.height>MaxHeight){
if (img.width/img.height>MaxWidth/MaxHeight) {
obj.height=MaxWidth*img.height/img.width;
obj.width=MaxWidth;
}else {
obj.width=MaxHeight*img.width/img.height;
obj.height=MaxHeight;
}
}else if (img.width>MaxWidth) {
obj.height=MaxWidth*img.height/img.width;
obj.width=MaxWidth;
}else if (img.height>MaxHeight) {
obj.width=MaxHeight*img.width/img.height;
obj.height=MaxHeight;
}else{
obj.width=img.width;
obj.height=img.height;
}
}

用法举例:

<img src="http://php.4like.net/wp-content/themes/pg/images/logo.gif" onload="picsize(this, 100,50);" />

程序分析:

1、如果图片的宽度和高度都比预设值大,并且图片的宽高比例比预设值的宽高比例大,就把图片的宽度置为预设值的宽度,高度置为 预设值宽度与图片高宽比例的乘积。
2、如果图片的宽度和高度都比预设值大,并且图片的宽高比例比预设值的宽高比例小或者相等,就把图片的高度置为预设值的高度,宽度置为 预设值高度与图片宽高比例的乘积。
3、如果图片的宽度大于预设值而高度小于等于预设值,就把图片的宽度置为预设值的宽度,高度置为 预设值宽度与图片高宽比例的乘积。
4、如果图片的高度大于预设值而宽度小于等于预设值,就把图片的高度置为预设值的高度,宽度置为 预设值高度与图片宽高比例的乘积。
5、如果图片的宽度和高度都比预设值小,就采用图片的原始大小。
6、经过上面的大小调整后,宽度和高度都比预设值小的图片,就采用图片的原始大小,其他大小均成比例缩放图片。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: