复制代码 代码如下:<html> <head> <title>Untitled</title> <style type="text/css"> .testCss{width:200px;height:300px;border:1px red solid;text-align:center;display:block;} .testCss1{width:300px;height:300px;border:1px red solid;text-align:center;display:block;} .testCss2{width:400px;height:300px;border:1px red solid;text-align:center;display:block;} </style> <script type="text/javascript"> function autoSizeImg(Contents,offsetWidth,offsetHeight,vlmiddle){ var o=Contents.getElementsByTagName("IMG"); var cwidth= window.getComputedStyle?window.getComputedStyle(Contents,null).width:Contents.currentStyle["width"]; var cheight=window.getComputedStyle?window.getComputedStyle(Contents,null).height:Contents.currentStyle["height"]; var ncwidth=parseInt(cwidth); var ncheight=parseInt(cheight); for(var i=0;i<o.length;i++){ var img=o[i]; var iw=img.width; var ih=img.height; if(img.width>ncwidth){ var nw=ncwidth-offsetWidth; img.width=nw img.height=(nw*ih)/iw; }else if(img.width<ncwidth&&img.height>ncheight){ var nh=ncheight-offsetHeight; img.height=nh; img.width=(nh*iw)/ih; } if(img.height>ncheight&&img.width<ncwidth){ var hh=ncheight-offsetHeight; img.height=nh; img.width=(nh*iw)/ih; } if(vlmiddle)img.style.marginTop=((ncheight-img.height)/2)+"px"; } } </script> </head> <body> <div class="testCss"> <img src="http://files.jb51.net/file_images/sucai/111131524.jpg" onload="autoSizeImg(this.parentNode,5,5,true)"/> </div> <div class="testCss1"> <img src="http://files.jb51.net/upload/20081010215957304.jpg" onload="autoSizeImg(this.parentNode,5,5,true)"/> </div> <div> </div> <div class="testCss2"> <img src="http://files.jb51.net/upload/20081010215958874.gif" onload="autoSizeImg(this.parentNode,5,5,true)"/> </div> </body> </html>注释: 1、后面的testCss1和testCss2两个样式跟testCss是一样的。只是设置了大小。 2、红色部分的height和width必须定义,是设置存放img外面的父层容器的高和宽。 3、text-algin:为图片水平居中 4、display:block,必须设置。否则FF下启用自动缩放不起作用。 使用方法: 1、是需要在img的父层定义样式,包含上述注释里面提到的东西; 2、是img加上 onload="autoSizeImg(this.parentNode,5,5,true)" 参数说明: 参数Contents一般采用this.parentNode,即使img的父容易 参数offsetWidth,offsetHeight分别是宽和高度居中的修正值。 参数vlmiddle设置为true则是垂直居中
Untitled
.testCss{width:200px;height:300px;border:1px red solid;text-align:center;display:block;}
.testCss1{width:300px;height:300px;border:1px red solid;text-align:center;display:block;}
.testCss2{width:400px;height:300px;border:1px red solid;text-align:center;display:block;}
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
推荐阅读
javascript仿163网盘无刷新文件上传系统
本来觉得这个系统会很复杂,但把每个部分都分析清楚后,其实需要的技术并不高。不过当我把各个功能函数都整理好准备进行封装时,却发现要把程序封装不是那么容易,因为程序跟html的耦合度太高。然后我逐步把程序中>>>详细阅读
本文标题:javascript图片自动缩放和垂直居中处理函数
地址:http://www.17bianji.com/kaifa2/JS/29321.html
1/2 1