唠唠IE6中PNG透明滤镜AlphaImageLoader

AlphaImageLoader

说明:

在对象容器边界内,在对象的背景和内容之间显示一张图片。并提供对此图片的剪切和改变尺寸的操作。如果载入的是PNG(Portable Network Graphics)格式,则0%-100%的透明度也被提供。

语法:

filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabled=bEnabled , sizingMethod=sSize , src=sURL )

enabled:可选项。布尔值(Boolean)。设置或检索滤镜是否激活。
true:默认值。滤镜激活。
false:滤镜被禁止。

sizingMethod:可选项。字符串(String)。设置或检索滤镜作用的对象的图片在对象容器边界内的显示方式。
crop:剪切图片以适应对象尺寸。
image:默认值。增大或减小对象的尺寸边界以适应图片的尺寸。
scale:缩放图片以适应对象的尺寸边界。

src:必选项。字符串(String)。使用绝对或相对 url 地址指定背景图像。假如忽略此参数,滤镜将不会作用。

具体操作:

  1. 为预览区域(比如要在某个 div 中预览)添加样式:filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);。
  2. 为 AlphaImageLoader 设置 src 属性。

—————————————大名叫分割线————————————————

ie6的这个滤镜解决png的问题还是很不错的,我最近都不怎么用iepng.js了。

说说缺点,首先是不能作为循环背景,不能做定位(background-position)。

昨天做项目发现了另一个问题,就是sizingMethod对图片和容器间的影响,你可以仔细看一下上面的参数说明。

这个很有意思,如果是scale这个参数,你就可以把这个容器当作图片来使用了(我的意思是类似img标签)。

另外就是我的png背景透明的父级DOM下的内容不能操作,这个我还没搞清楚,不过我的解决办法是单拿出来一个层写背景,放在我需要背景的元素下面,这样总算是解决了png的大部分问题。