您的位置:首页 > Web前端 > JavaScript

[整合]利用CSS + Javascript 缩小背景图片

2008-03-14 22:44 681 查看
当然,生成缩略图这个工作如果交给程序来完成,效果会好很多,但是有时出于某种因素,例如服务器不支持GD之类的,难免就要请CSS代劳。
  把一副大图片按比例缩小到某个尺寸,对于现代浏览器,直接使用max-width和max-height两条CSS属性即可。
  对于IE 6.0及以下版本,以上两条CSS属性均不会被理会。之前处理这种事情,我们往往会借助Javascript,然后为图片加上onload事件。例如:


Example Source Code [www.52css.com]
  <imgsrc="..."alt="..."onload="resizeImage(this)"/>
  <script type="text/javascript">
  functionresizeImage(obj){
  obj.width=obj.width>50&&obj.width>obj.height?50:auto;
  obj.height=obj.height>50?50:auto;
  }
  </script>

  这固然能解决问题,但是对以后页面的升级会带来麻烦——随着浏览器对CSS支持的完善,我们迟早会把图片上的onload事件统统去除。该是Expression的Show Time了,既然IE支持通过Expression在CSS中放置一些脚本,而这段脚本又只是提供给IE 6.0及以下版本使用,那么把它写到Expression中再合适不过。
  最终,把一副大图片按比例缩小到50px*50px以内,可以参照以下这段CSS:


Example Source Code [www.52css.com]
  .thumbImage{
  max-width:50px;
  max-height:50px;
  }
  *html.thumbImage{
  width:expression(this.width>50&&this.width>this.height?50:auto);
  height:expresion(this.height>50?50:auto);
  }

  至于图片是如何保持其高宽比例的,这张图片可以解释:



以上只是对图片进行了缩放, 如果把一张图片作为背景,还可以用这种方法吗? 很明显不能.

我们需要更灵活的来处理这个需求. 请参考下面这个方法.

1. 用一个DIV里放一张图片,调整大小, 然后更改Z轴的值, 让它跑到别一个DIV的下面, 不就可以曲线实现背景图片缩放了吗?

<div id="fpdiv" style="z-index:1;position:absolute;width:1024px;height:727px;"><font color=#ffffff>上面的文字</font></div>
<div style="position:absolute;z-index:-1;width=1024"><img src="http://www.ce65.net/upload/opportnuity/2006-05-24/07/cata_12156/init548102.jpg"></div>

2.还可以用CSS滤镜来实现, 这个比较高级,我没有验证.大家仅供参考.

<html>
<body>
<table>
<tr>
<td style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://www.nowfs.com/kc/UploadFiles/2005620154136201.jpg', sizingMethod='scale');"
align="center" width=300 height=200>
</td>
</tr>
</table>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: