1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> 5 <title>图片居中显示</title> 6 <style> 7 .box{ position: relative; width:300px; height:300px; border:1px solid #ccc; float:left; margin:5px;} 8 .box img{ position: absolute;top:50%; left:50%;} 9 </style> 10 </head> 11 <body> 12 <script> 13 //获取id 14 function _$ (id) 15 { 16 return typeof id === "string" ? document.getElementById(id) : id; 17 } 18 //获取tagName 19 function _$$ (elem, oParent) 20 { 21 return (oParent || document).getElementsByTagName(elem); 22 } 23 function MakeCenter(){ 24 this.initi.apply(this,arguments); 25 } 26 MakeCenter.prototype = 27 { 28 //初始化 29 initi : function(obj,setWidth,setHeight){ 30 var _this = this; 31 this.imgMaxWidth = setWidth; 32 this.imgMaxHeight = setHeight; 33 this.obj = _$(obj); 34 this.imgs = _$$("img",this.obj); 35 for(var i=0; i<this.imgs.length; i++){ 36 if(this.imgs[i].complete) { 37 this.adjustImage.call(this.imgs[i],this.imgMaxWidth,this.imgMaxHeight); 38 } else { 39 this.imgs[i].onload = adjustImage(_this.imgMaxWidth,_this.imgMaxHeight); 40 } 41 } 42 }, 43 //计算图片的宽度高度设置图片的margin值 44 adjustImage : function(mw,mh){ 45 var w = this.offsetWidth, h = this.offsetHeight; 46 if(mw > 0 && w > mw) { 47 this.width = mw; 48 this.height = h/(w/mw); 49 } else if(mh > 0 && h > mh) { 50 this.height = mh; 51 this.width = w/(h/mh); 52 } 53 this.style.marginLeft = -this.width/2+"px"; 54 this.style.marginTop = -this.height/2+"px"; 55 } 56 57 } 58 window.onload = function(){ 59 new MakeCenter("box",200,100); 60 } 61 </script> 62 <div id="box"> 63 <div class = "box"> 64 <img src="http://www.zllg.net/themes/drfx_01/images/onclick/onclick.png" /> 65 </div> 66 <div class = "box"> 67 <img src="http://www.zllg.net/themes/drfx_01/images/may/content_1_01.jpg" /> 68 </div> 69 <div class = "box"> 70 <img src="http://www.zllg.net/themes/drfx_01/images/may/content_3.jpg" /> 71 </div> 72 </div> 73 </body> 74 </html>