转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> 网页制作 >> 正文
谈Filter在网页中的运用         ★★★★

谈Filter在网页中的运用

作者:闵涛 文章来源:闵涛的学习笔记 点击数:625 更新时间:2009/4/23 13:46:54
  自W3C公布了样式单(CSS)的标准以来,HTML的每一部分开始以元素的形式出现,并且事件开始真正被引入页面,动态HTML成为了人们讨论的热点。实际上,W3C采用的标准即为微软的DOM,也就是说IE4.0可以更好的支持CSS,并且微软对CSS还进行了许多十分有益地探索,Filter就是一个很好的例子。 
  众所周知,Javascript或Vbscript作为脚本语言,其功能是不完善的,有许多高级语言的功能无法实现,如图象的处理功能。Filter是微软对CSS的扩展,与PhotoShop中的滤镜概念相似,它可以用很简单的方法对页面中的文字特效作出特效处理,静态如阴影、模糊的效果,动态如各种淡入淡出效果。下面我来仔细讲解一下(以下内容需在IE4.0下浏览):

  静态滤镜:

  要显示滤镜效果,必须先建立一个区域(<div>),并规定区域的范围(width和height),以下是对一个一般区域的规定:

<style>
<!--div {height:50;width:300;font-size:20pt}//-->
</style>

  把此样式单放入到“<head>”标记和“<body>”之间,然后在“<body>”标记间填写正文:

<div>…………</div>

  在“<div>”标记中插入样式单:style="filter:样式(参数1,参数2,参数3……);"

  下面给出完整的例子:

<HTML>
<head>
</head>
<style>
div {height:100;width:400;font-size:20pt}
</style>
<body bgcolor=yellow>
<h1 align=center>Filter Effects</h1><hr>
<div style="filter:wave(add=0,freq=1,lightStrength=20,phase=50,strength=20)">
<img src="00cirr.gif">
this is div
is 
wave-filtered</div>
<div style="filter:alpha (opacity=10, finishOpacity=10, style=10, startX=10, startY=10, finishX=20, finishY=30, add=0, direction=45, strength=10)">
this is alpha.
<img src=00cirr.gif>
</div>
<div style="filter:blur(add=0,direction=45,strength=5)">
this is blur effect.
<img src=00cirr.gif>
</div>
<div style="filter:chroma(color=white)">
this is chroma effect 
<img src=00cirr.gif>
</div>

<div style="filter:flipV">
this is flipV effect
<img src=00cirr.gif>
</div>
</body>
</html>

  以wave滤镜为例,它在垂直方向产生正弦波形,其中参数add表示是否加入原图象(1=是,0=否),freq表示波的数量,phase表示波形的起始偏移量,lightStrength表示光对波纹照射的强度,strength表示波的强度。下表是Filter支持的所有滤镜样式及其参数:

  其中经常出现的color属性可以用十六进制表示(如#ff0000),也可以用rgb()表示(如rgb(255,0,0)),还可用系统承认的颜色名表示(如red)。

  以上就是静态滤镜的全部内容,要注意的是CSS是区分大小写的!

  动态滤镜

  动态滤镜可以为页面添加动人的淡入淡出、图象转化效果,它可以分为两种blend(混合)和reveal(显示),前者可以使对象渐渐消失或出现,后者提供了24种图象转化的效果。对于动态滤镜的调用除去象在静态滤镜中要定义的滤镜类型,参数等等,还用到脚本语言控制它的状态,首先,在开始一个动态效果之前,先需要进行装备(Apply),然后播放(Play)动态效果,在动态效果进行中还可以中断动态效果(Stop),以上可以用下面的方法实现:

对象名.filters(滤镜数值).Apply()
对象名.filters(滤镜数值).Play()
对象名.filters(滤镜数值).Stop()

  对于滤镜状态的判断可以通过“对象名.filters(滤镜数值).status”判断,该值为0时,表示滤镜未执行,为1时,表示滤镜已经完成,为2时表示滤镜在执行中。

  在定义filter时,如上面所提到的,可以有混合(“filter:blendTrans(duration=时间数值)”,duration表示滤镜执行需要的时间,单位为秒)和显示(“filter:revealTrans(duration=时间数值,transition=过渡类型)”,过渡类型为从0-23的数值)两种,下面请看混合的例子:

<html>
<head>
</head>
<body>
<div style="position:absolute;left:200;top:50;width:400;height:220;background-
color:yellow;
color:blue;font-size:20px;border:solid black;"
id="main">
<div id="Inner1" 
style="position:relative;left:20%;top:35%;width:60%;height:30%; filter:blendTrans(duration=3);">
<p align=center>演示区域</p>
</div>
<div id="control" style="position:absolute;left:180;top:180">
<input type=button value="开始" onclick="toggleMultimedia();">
</div>
</div>
<script language="JavaScript">
var curObj=Inner1,i=0;
words=new Array(3);
words[0]="<p align=center>渐渐隐去</p>";
words[1]="<p align=center>慢慢浮现</p>";
words[2]="<p align=center>这就是Blend的效果</p>";

function toggleMultimedia() {
curObj.innerHTML=words[i];
if (curObj.filters(0).status == 2) {
curObj.filters(0).Stop();
if (curObj.style.visibility == "hidden")
curObj.style.visibility = "visible";
else
curObj.style.visibility = "hidden";
window.setTimeout("toggleMultimedia()", 1);
}
//准备开始
curObj.filters(0).Apply();

if (curObj.style.visibility == "hidden")
{curObj.style.visibility = "visible";}
else
{curObj.style.visibility = "hidden";
if (i==2) i=-1;
i=i+1;}

//开始
curObj.filters(0).Play();
window.setTimeout("toggleMultimedia()",4000);
}
</script>
</body>
</html>

  下面的例子是reveal的例子。

<HTML>
<head>
<script language="Javascript">
var i=0;
function filter_me(){

if (change.filters(0).status!=2){i=i+1;
if (i%2!=0){
change.style.backgroundColor='yellow';
change.filters(0).Apply();
change.filters(0).Play();
change.style.visibility='hidden';
}
else {




没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台