纯js实现div内图片自适应大小----神器版!

本文提供了一段JavaScript代码,旨在解决在图片尺寸和div容器尺寸未知时,如何使图片在div中自适应显示的问题。代码经过测试,兼容Firefox、Chrome和IE6-8,以确保图片不会因拉伸而失真。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这代码实现的功能就是平常我们遇到的一个div里面包含img的时候,在img图片大小未知,div大小未知的情况下,让图片自适应大小,对于图片本身小于div容器大小时,不作处理。因为如果拉伸,图片可能就失真了。


废话不多说,直接上代码,已测试,兼容火狐,谷歌,IE6,IE7/8


以下是js代码:

<script  type="text/javascript" language="javascript"> 
window.onload=function(){
		changeImgSize();
	}
function changeImgSize(){
		var getContainer=document.getElementById('imgcontainer');
		var getIMG=getContainer.getElementsByTagName('img')[0];
		var fw=getContainer.offsetWidth-(2*getContainer.clientLeft);
		var fh=getContainer.offsetHeight-(2*getContainer.clientTop);
		var iw=getIMG.width; 
		var ih=getIMG.height;
		var m=iw/fw;
		var n=ih/fh;
		if(m>=1&&n<=1)
		{
			iw=Math.ceil(iw/m);
			ih=Math.ceil(ih/m);
			getIMG.width=iw;
			getIMG.height=ih;
		}
		else if(m<=1&&n>=1)
		{
			iw=Math.ceil(iw/n);
			ih=Math.ceil(ih/n);
			getIMG.width=iw;
			getIMG.height=ih;
		}
		else if(m>=1&&n>=1)
		{
			getMAX=Math.max(m,n);
			iw=Math.ceil(iw/getMAX);
			ih=Math.ceil(ih/getMAX);
			getIMG.width=iw;
			getIMG.height=ih;
		}
		if(getIMG.height<fh)
		{
			var getDistance=Math.floor((fh-getIMG.height)/2);
			getIMG.style.marginTop=getDistance.toString()+"px";
		}
	}
</script>

以下是html代码:

<div class="sy_pic" id="imgcontainer"><img src="images/444.jpg" /></div>

以下是css代码:

.sy_pic{ width:200px; height:300px; border:#000 solid 5px; text-align:center;}

自己换下图片地址使用。有问题或者指教请加QQ群:255708401。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值