本文提供一段纯JavaScript代码,用于在未知图片与Div容器尺寸的情况下,实现图片的自适应缩放与垂直居中。代码通过计算宽高比调整图片大小,确保图片不超出容器且保持比例,同时兼容火狐、谷歌及IE6-8浏览器。
图片自适应与居中原理
该代码旨在解决一个常见的网页布局问题:当Div容器内包含Img元素,且图片原始尺寸与Div容器尺寸均未知时,如何让图片自动适应容器大小。需要注意的是,如果图片原始尺寸小于容器,代码将不进行任何拉伸处理,以避免图像失真。
直接展示实现代码,该方案已经过测试,能够兼容火狐、谷歌以及IE6、IE7和IE8等浏览器。
具体的JavaScript实现代码如下:
JavaScript实现代码
代码如下:
<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结构代码如下:
HTML与CSS结构
代码如下:
<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进行交流。