动态改变图片大小来适应页面(转)
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、经过上面的大小调整后,宽度和高度都比预设值小的图片,就采用图片的原始大小,其他大小均成比例缩放图片。
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、经过上面的大小调整后,宽度和高度都比预设值小的图片,就采用图片的原始大小,其他大小均成比例缩放图片。
相关文章推荐
- img超出div width时, jQuery动态改变图片显示大小
- jQuery动态改变图片显示大小
- jQuery动态改变图片显示大小(修改版)的实现思路及代码
- 通过html5的range属性动态改变图片的大小
- Loader动态添加多个图片并改变其大小 Flash3.0
- 记几个常用的动态改变图片大小布局的东东
- JDesktopPane改变窗体大小时背景图片自动适应窗体大小
- jQuery动态改变图片显示大小(修改版)的实现思路及代码
- 用picture控件显示图片之动态方法(使图片适应于控件大小)
- jQuery动态改变图片显示大小(修改版)
- 在网页中动态改变图片大小
- textview动态设置 DrableLeft 以及改变图片大小
- 通过html5的range属性动态改变图片的大小
- Java script 动态改变 图片大小
- 在iframe的name不定时,根据被包含页面大小动态改变iframe的大小(by quqi99)
- Ext3.2.2 表格随窗口改变动态适应窗体大小
- android 动态改变图片大小
- jQuery动态改变图片显示大小(修改)
- 加载页面时,根据页面的Iframe内的子页面的大小进行动态改变Iframe的大小 JS
- jsp页面跳转到子页面和返回上一页,附带动态改变父页面的iframe高度大小