自动限制图片大小

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>自动限制图片大小</title>
<script language="javascript">
function fixImageSize(src, width, height){
 var n=setInterval("setFixSize(" + src.uniqueID + ")", 100);
 src.setAttribute("fixhandler", n);
 src.οnerrοr=function(){
  clearInterval(n);
  src.setAttribute("fixhandler");
 }
}
function setFixSize(o){
 var w=o.width;
 var h=o.height;
 if (!w*h) return;
 var W=100; var H=100 //如果要统一尺寸,则把下面两行换成当前这一行,并且无需在IMG标签中设置 fixWidth, fixHeigh 属性
 /*var W=o.getAttribute("fixwidth");
 var H=o.getAttribute("fixheight");*/
 if (w>W){
  h=h * (W/w);
  w=W;
 }
 if (h>H){
  w=w * (H/h);
  h=H;
 }
 o.width=w;
 o.height=h;
 var n=o.getAttribute("fixhandler");
 clearInterval(n);
 o.setAttribute ("fixhandler", 0);
}
function autoSetImageSize(o){
 var a=arguments;
 if (a.length==0) a=[document.body];
 for (var i=0; i<document.images.length; i++)
  for (var j=0; j<a.length; j++)
   if (isAncestor(document.images[i], a[j])) setFixSize(document.images[i]);
}
function isAncestor(child, ancestor){
 if (child && child.parentElement){
  if (child.parentElement==ancestor) return true;
  else return isAncestor(child.parentElement, ancestor);
 }
 return false;
}
</script>
</head>

<body οnlοad="autoSetImageSize(ok, yes, no);">
<div id="ok">
<img src="ok.jpg">
</div>
<div id="no">
<img src="no.jpg">
</div>
<div id="yes">
<img src="yes.jpg">
</div>
<div id="yeah">
<img src="yeah.jpg">
</div>
</body>
</html>

使用方法:调用onload=AutoResizeImage()即可: <img src="./sample_pic.jpg" border="0" width="0" height="0" onload="AutoResizeImage(300,600,this)" /> 注意设置width="0" height="0" 也可onload="AutoResizeImage(0,250,this)"或onload="AutoResizeImage(250,0,this)" ,注意体会。 以下为使用示例: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>最新javascript自动按比例显示图片,按比例压缩图片显示</title> <script language="javascript" src="./resizepic.js"></script> </head> <body> <br /> 原图显示(534 X 800)<br /> onload="AutoResizeImage(0,0,this)<br /> <a href="./sample_pic.jpg" target="_blank"><img src="./sample_pic.jpg" border="0" width="0" height="0" onload="AutoResizeImage(0,0,this)" alt="534 X 800"/></a><br/><br /> 1.按宽度250压缩,不限制高度 按比例压缩<br /> onload="AutoResizeImage(250,0,this)"<br /> <a href="http://www.toyi.cc" target="_blank"><img src="./sample_pic.jpg" border="0" width="0" height="0" onload="AutoResizeImage(250,0,this)" alt="250 X 374"/></a><br /><br /> 2.按高度250压缩,不限制宽度 按比例压缩<br /> onload="AutoResizeImage(0,250,this)"<br /> <a href="http://www.toyi.cc" target="_blank"><img src="./sample_pic.jpg" border="0" width="0" height="0" onload="AutoResizeImage(0,250,this)" alt="166 X 250"/></a><br /><br /> 3.按高度250宽度250 按比例压缩<br /> onload="AutoResizeImage(250,250,this)"<br /> <a href="http://www.toyi.cc" target="_blank"><img src="./sample_pic.jpg" border="0" width="0" height="0" onload="AutoResizeImage(250,250,this)" alt="200 X 300"/></a><br /><br /> 4.高宽不等比例压缩 (400 X 512),此时高度不变,会自动按高度的比例压缩。<br /> onload="AutoResizeImage(400,512,this)"<br /> <a href="http://www.toyi.cc" target="_blank"><img src="./sample_pic.jpg" border="0" width="0" height="0" onload="AutoResizeImage(400,512,this)" alt="341 X 512"/></a><br /><br /> 5.高宽不等比例压缩 (300 X 600),此时宽度不变,会自动按宽度的比例压缩。<br /> onload="AutoResizeImage(300,600,this)"<br /> <a href="http://www.toyi.cc" target="_blank"><img src="./sample_pic.jpg" border="0" width="0" height="0" onload="AutoResizeImage(300,600,this)" alt="300 X 449"/></a><br /><br /> 6.如果图片本来的高度和宽度小于压缩的最大高度和宽度,则不会拉大显示图片(按原图显示)<br /> 原图444 x 207,压缩为 500 x 600,将保持原图显示<br /> onload="AutoResizeImage(500,600,this)"<br /> <a href="http://www.toyi.cc" target="_blank"><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/feng_sundy/242776/o_20070410_b7409cd284a0f799a357uePcEFa6ty0X.jpg" border="0" width="0" height="0" onload="AutoResizeImage(500,600,this)" alt="444 X 207"/></a><br /><br /> </body> </html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值