妙用CSS滤镜为图片加上特殊效果

王朝html/css/js·作者佚名  2006-12-16
宽屏版  字体: |||超大  

有时候,我们需要给网页中的图片加一些特殊的效果,比如透明、扭曲、阴影或者翻转等,我们一般都会想到用Photoshop等一些图形软件来处理,其实我们也可以利用CSS(层叠式样表)提供的一些滤镜来处理,这对于不熟悉Photoshop的网友来说,是非常好的一件事。

我们先从较简单的开始,介绍几个没有参数的滤镜。

1.Gray滤镜

Gray滤镜的作用是产生黑白效果

使用方法:<img src="a.gif" style="filter:gray">

效果如图所示

2.Invert滤镜

Invert滤镜的作用是反色效果

使用方法:<img src="a.gif" style="filter:invert">

效果如图所示

3.Xray滤镜

Xray滤镜的作用是产生X光效果

使用方法:<img src="a.gif" style="filter:xray">

效果如图所示

4.fliph和flipv

fliph滤镜的作用是产生水平翻转效果;flipv滤镜的作用是产生垂直翻转效果

使用方法:<img src="a.gif" style="filter:fliph">或<img src="a.gif" style="filter:flipv">

效果如图所示

接下来,我们再介绍几个比较复杂的滤镜:

5.alpha滤镜

alpha滤镜作用主要是对图片的透明度进行处理

使用方法:<img src="a.gif" style="filter:alpha(opacity=value1,finishopacity=value2,style=value3)">

说明:value1为图片的透明值,范围是0(完全透明)~100(完全不透明)

value2为图片透明度变换结束时的透明值,范围是0(完全透明)~100(完全不透明) 注:该值只有在value3设定时才有效

value3为图片透明度变换方向。取值为1时,图片透明度按从左到右线性变化;取值为2时,图片透明度从内到外沿半径变化;取值为3时,图片透明度从内到外呈矩形变化

例:<img src="a.gif" style="filter:alpha(opacity=0,finishopacity=60,style=2)">

效果如图所示

6.shadow滤镜

shadow滤镜的作用是产生阴影效果

使用方法:<img src="a.gif" style="filter:shadow(color=value1,direction=value2)">

说明:value1为阴影的颜色值,如000000表示黑色

value2为光线照射角度,如135

例:<img src="a.gif" style="filter:shadow(color=000000,direction=135)">

效果如图所示

7.wave滤镜

wave滤镜的作用是使图片产生扭曲效果

使用方法:<img src="a.jpg" style="filter:wave(add=value1,freq=value2,lightstrength=value3,phase=value4,strength=value5)">

说明:value1的取值为1时,将原图片增加到处理过的图片上;为0时,则不增加

value2为视觉扭曲的波浪数

value3是波形亮度百分比,取值范围为0~100

value4为正弦波开始偏移的初始量,取值范围为0~100

value5为波形效果的强度

例:<img src="a.jpg" style="filter:wave(add=0,freq=5,lightstrength=50,phase=0,strength=5)">

效果如图所示

下面我们举一个简单的例子,浏览时会出现这样的一个效果:网页上有一个几乎透明的图像,当鼠标移到图像上时,图像慢慢变清晰;当鼠标移开时,图像又恢复到原来的透明状态。

要实现这个功能,需要使用到CSS的alpha滤镜,并用JavaScript来控制alpha滤镜的Opacity值,首现在网页中插入一个图片,并设定alpha滤镜的opacity值,让图片透明,图片代码为:<img src="a.gif" id="me" style="FILTER:alpha(Opacity=20)">.

JavaScript代码如下:

<script language="JavaScript">

function ch(n)

{

if(n=="add") //如果传入的参数为add,则将图片的不透明度增大

if(me.filters.alpha.Opacity<100)

{

me.filters.alpha.Opacity=me.filters.alpha.Opacity+5;

setTimeout("ch('add')",10);

}

if(n=="dec") //如果传入的参数为dec,则将图片的不透明度降低

if(me.filters.alpha.Opacity>20)

{

me.filters.alpha.Opacity=me.filters.alpha.Opacity-5;

setTimeout("ch('adc')",10);

}

}

</script>

将上面的代码加入<head></head>中,然后给图片加入onMouseOver和onMouseOut动作,即<img src="a.gif" id="me" style="FILTER:alpha(Opacity=20)" onMouseOver="ch('add')" onMouseOut="ch('dec')">.

好了,关于CSS滤镜我们就介绍到这里,相信各位开动脑子,一定会做出更好的效果。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
>>返回首页<<
推荐阅读
 
 
频道精选
© 2005- 王朝网络 版权所有