当前位置:编程学习 > html/css >>

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

答案:
有时候,我们需要给网页中的图片加一些特殊的效果,比如透明、扭曲、阴影或者翻转等,我们一般都会想到用Photoshop等一些图形软件来处理,其实我们也可以利用CSS(层叠式样表)提供的一些滤镜来处理,这对于不熟悉Photoshop的网友来说,是非常好的一件事。
 
     我们先从较简单的开始,介绍几个没有参数的滤镜。
     1.Gray滤镜
       Gray滤镜的作用是产生黑白效果
       使用方法:<img src="http://www.jscode.cn/arthtml/a.gif" style="filter:gray">
       效果如图所示
 
     2.Invert滤镜
       Invert滤镜的作用是反色效果
       使用方法:<img src="http://www.jscode.cn/arthtml/a.gif" style="filter:invert">
       效果如图所示
 
     3.Xray滤镜
       Xray滤镜的作用是产生X光效果
       使用方法:<img src="http://www.jscode.cn/arthtml/a.gif" style="filter:xray">
       效果如图所示
 
     4.fliph和flipv
       fliph滤镜的作用是产生水平翻转效果;flipv滤镜的作用是产生垂直翻转效果
       使用方法:<img src="http://www.jscode.cn/arthtml/a.gif" style="filter:fliph">或<img src="http://www.jscode.cn/arthtml/a.gif" style="filter:flipv">
       效果如图所示
 
   
     接下来,我们再介绍几个比较复杂的滤镜:
 
     5.alpha滤镜
       alpha滤镜作用主要是对图片的透明度进行处理
       使用方法:<img src="http://www.jscode.cn/arthtml/a.gif" style="filter:alpha(opacity=value1,finishopacity=value2,style=value3)">
       说明:value1为图片的透明值,范围是0(完全透明)~100(完全不透明)
     value2为图片透明度变换结束时的透明值,范围是0(完全透明)~100(完全不透明) 注:该值只有在value3设定时才有效
             value3为图片透明度变换方向。取值为1时,图片透明度按从左到右线性变化;取值为2时,图片透明度从内到外沿半径变化;取值为3时,图片透明度从内到外呈矩形变化
       例:<img src="http://www.jscode.cn/arthtml/a.gif" style="filter:alpha(opacity=0,finishopacity=60,style=2)">
       效果如图所示
 
     6.shadow滤镜
       shadow滤镜的作用是产生阴影效果
       使用方法:<img src="http://www.jscode.cn/arthtml/a.gif" style="filter:shadow(color=value1,direction=value2)">
       说明:value1为阴影的颜色值,如000000表示黑色
     value2为光线照射角度,如135
       例:<img src="http://www.jscode.cn/arthtml/a.gif" style="filter:shadow(color=000000,direction=135)">
       效果如图所示
 
     7.wave滤镜
       wave滤镜的作用是使图片产生扭曲效果
       使用方法:<img src="http://www.jscode.cn/arthtml/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="http://www.jscode.cn/arthtml/a.jpg" style="filter:wave(add=0,freq=5,lightstrength=50,phase=0,strength=5)">
       效果如图所示
   
 
     下面我们举一个简单的例子,浏览时会出现这样的一个效果:网页上有一个几乎透明的图像,当鼠标移到图像上时,图像慢慢变清晰;当鼠标移开时,图像又恢复到原来的透明状态。
     要实现这个功能,需要使用到CSS的alpha滤镜,并用javascript来控制alpha滤镜的Opacity值,首现在网页中插入一个图片,并设定alpha滤镜的opacity值,让图片透明,图片代码为:<img src="http://www.jscode.cn/arthtml/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="http://www.jscode.cn/arthtml/a.gif" id="me" style="FILTER:alpha(Opacity=20)" onMouseOver="ch('add')" onMouseOut="ch('dec')">.
     好了,关于CSS滤镜我们就介绍到这里,相信各位开动脑子,一定会做出更好的效果。

 

上一个:用CSS样式实现显示隐藏层
下一个:CSS常用信息速查手册

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,