這代碼實現的功能就是平常我們遇到的一個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 id="imgcontainer"><img src="images/444.jpg" /></div>
以下是css代碼:
複製代碼代碼如下:
.sy_pic{ width:200px; height:300px; border:#000 solid 5px; text-align:center;}
自己換下圖片地址使用。有問題或者指教請加QQ群:255708401。