Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

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

Posted on 2008-06-13 10:34  analyzer  阅读(462)  评论(0编辑  收藏  举报
有时候,我们需要给网页中的图片加一些特殊的效果,比如透明、扭曲、阴影或者翻转等,我们一般都会想到用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滤镜我们就介绍到这里,相信各位开动脑子,一定会做出更好的效果。
我要啦免费统计