前端开发精通CSS滤镜(filter)

前端开发技术论坛
web前端开发前沿技术
前端开发用到的技术

可视化滤镜属性只能用在html控件元素上,不能使用div的id,class定义。所谓的html空间元素就是它们在页面上定

义了一个矩形空间,浏览器的窗口可以显示这些空间。下面列出了HTML合法的控件和它们的说明。

元素 说明

BODY 网页文档的主体元素,所有的可见范围都在元素内
BUTTON 表单域的按钮,可以有“发送(submit)”、“重置(reset)”等形式
DIV 定义了网页上的一个区域,这个区域的高度、宽度或者绝对位置都是以知的
IMG 图片元素,通过指定“src’属性来指定图片的来源
INPUT 输入表单域
MARQUEE 移动字幕效果
SPAN 定义了网页上的一个区域,这个区域的高度、宽度或者绝对位置都是以知的
TABLE 表格
TD 表格数据单元格
TEXTAREA 文本区域
TFOOT 多行输入文本框
TH 表格标题单元格
THEAD 表格标题
TR 表格行

////////////////////////////////////////

IE4.0以上支持的滤镜属性表

滤镜效果 描述 :
Alpha 设置透明度
Blru 建立模糊效果
Chroma 把指定的颜色设置为透明
DropShadow 建立一种偏移的影象轮廓,即投射阴影
FlipH 水平反转
FlipV 垂直反转
Glow 为对象的外边界增加光效
Grayscale 降低图片的彩色度
Invert 将色彩、饱和度以及亮度值完全反转建立底片效果
Light 在一个对象上进行灯光投影
Mask 为一个对象建立透明膜
Shadow 建立一个对象的固体轮廓,即阴影效果
Wave 在X轴和Y轴方向利用正弦波纹打乱图片
Xray 只显示对象的轮廓

下面分别阐述:
1、Alpha 滤镜
语法:{FILTER:ALPHA(opacity=opacity,finishopacity=finishopacity,style=style,startx=startx,
starty=starty,finishx=finishx,finishy=finishy)}

‘Alpha’属性是把一个目标元素与背景混合。设计者可以指定数值来控制混合的程度。这种“与背景混合”通俗地说

就是一个元素的透明度。通过指定坐标,可以指定点、线、面的透明度。他们的参数含义分别如下:

“opacity’代表透明度水准。默认的范围是从0 到 100,他们其实是百分比的形式。也就是说,0代表完全透明,

100代表完全不透明。”finishopacity’是一个可选参数,如果想要设置渐变的透明效果,就可以使用他们来指定

结束时的透明度。范围也是0 到 100。“style’ 参数指定了透明区域的形状特征。其中0代表统一形状、1代表线形、2代表放射状

、3代表长方形。”STARTX“和”STARTY“代表渐变透明效果的开始X和Y坐标。”

FINISHX“和”FINISHY“代表渐变透明效果结束X和Y 的坐标。

复制代码
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>css滤镜</title>
<style>
body{FILTER:ALPHA(opacity=50,finishopacity=80,style=2}
</style>
</head>
<body>
<div class=”try”><font color=”#CC33C2″>施杨de编程世界</font></div>
<div><img src=”image/ch2.gif” /></div>
</body>
</html>
复制代码

2、Blur 滤镜
语法:对于HTML:{filter:blur(add=add,direction=direction,strength=strength)}
对于Script语言: [oblurfilter=] object.filters.blur
用手指在一幅尚未干透的油画上迅速划过时,画面就会变得模糊。”Blur’就是产生同样的模糊效果。

“ADD”参数是一个布尔判断“TRUE(默认)”或者“FALSE”。它指定图片是否被改变成印象派的模糊

效果。模糊效果是按顺时针的方向进行的,“DIRECTION”参数用来设置模糊的方向。其中0度代表垂直

向上,然后每45度为一个单位。它的默认值是向左的270度。“STRENGTH“值只能使用整数来指定,

她代表有多少像素的宽度将受到模糊影响。默认是5个。

代码如下:

复制代码
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>css滤镜</title>
<style>
body{filter:blur(add=ture,direction=135,strength=200)}
</style>
</head>
<body>
<div class=”try”><font color=”#CC33C2″>施杨de编程世界</font></div>
<div><img src=”image/ch2.gif” /></div>
</body>
</html>
复制代码

效果:

3、FlipH, FlipV 滤镜
语法:{filter:filph} ,{filter:filpv} 分别是水平反转和垂直反转

4、Chroma 滤镜
语法:{filter:chroma(color=color)}
使用”Chroma’属性可以设置一个对象中指定的颜色为透明色,参数COLOR即要透明的颜色。
代码如下:

复制代码
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”&gt;
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>css滤镜</title>
<style>
body{filter:chroma(color=#CC33C2)}
</style>
</head>
<body>
<div class=”try”><font color=”#CC33C2″>施杨de编程世界</font></div>
<div><img src=”image/ch2.gif” /></div>
</body>
</html>
复制代码

可以屏蔽颜色,大有用处。
5、DropShadow 滤镜
语法:{filter:dropshadow(color=color,offx=ofx,offy=offy,positive=positive)}

“DropShaow’顾名思义就是添加对象的阴影效果。其工作原理是建立一个偏移量,加上较深。

‘Color’代表投射阴影的颜色,’offx’和’offy’分别是X方向和Y方向阴影的饿偏移量。

‘Positive’参数是一个布尔值,如果为“TRUE(非0)”,那么就为任何的非透明像素建立可见的投影。

如果为“FASLE(0)”,那么就为透明的像素部分建立透明效果 代码如下:

dropshadow(color=gray,offx=5,offy=5.positive=0)

效果:

6、Glow 滤镜
语法:{filter:glow(color=color,strength)}

当对一个对象使用’glow’属性后,这个对象的边缘就会产生类似发光的效果。“COLOR”是指定

发光的颜色,“STRENGTH”则是强度的表现,可以从1到255之间的任何整数来指定这个力度。
filter:glow(color=red,strength=10) 后的效果

filter:glow(color=#ffff00,strength=5) 后的效果

复制代码
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>css滤镜</title>
<style>
body{filter:glow(color=red,strength=10)}
.try{ margin-left:30px;}
</style>
</head>
<body>
<br /><br />
<div class=”try”><font color=”#CC33C2″>施杨de编程世界</font><br />
<br />
<div><img src=”image/ch2.gif” /></div><br /><br /></div>
</body>
</html>
复制代码

7、Gray ,Invert,Xray 滤镜
语法:{filter:gray} ,{filter:invert},{filter:xray}

Gray滤镜是把一张图片变成灰度图;(汶川大地震后很多网站色调都变灰色,就是用的这一点代码实现的)
Invert滤镜是把对象的可视化属性全部翻转,包括色彩、饱和度、和亮度值;
Xray滤镜是让对象反映出它的轮廓并把这些轮廓加亮,也就是所谓的“X”光片。

效果:

效果:

8、Light 滤镜
语法:Filter{light}

这个属性模拟光源的投射效果。一旦为对象定义了“LIGHT’滤镜属性,那么就可以调用它的“方法(Method)’来设置或者改变属性。“LIGHT’可用的方法有:

·AddAmbient 加入包围的光源
·AddCone 加入锥形光源
·AddPoint 加入点光源
·Changcolor 改变光的颜色
·Changstrength 改变光源的强度
·Clear 清除所有的光源
·MoveLight 移动光源

addAmbient (iRed,iGreen,iBlue,iStrength) : 为滤镜添加环境光。环境光是无方向的,并且均匀的洒在页面的表面。环境光有颜色和强度值,可以为对象田家更多的颜色。它通

常和其他光一起使用。无返回值。参数见下表。
iRed : 必选项。整数值(Integer)。 指定红色值。取值范围为 0 – 255 。
iGreen : 必选项。整数值(Integer)。 指定绿色值。取值范围为 0 – 255 。
iBlue : 必选项。整数值(Integer)。 指定蓝色值。取值范围为 0 – 255 。
iStrength : 必选项。整数值(Integer)。 指定光强度。取值范围为 0 – 100 。

changeColor (iLightNumber,iRed,iGreen,iBlue,fAbsolute) : 改变光的颜色。无返回值。参数见下表。
iLightNumber : 必选项。整数值(Integer)。 指定光的标识符。
iRed : 必选项。整数值(Integer)。指定红色值。取值范围为 0 – 255 。
iGreen : 必选项。整数值(Integer)。指定绿色值。取值范围为 0 – 255 。
iBlue : 必选项。整数值(Integer)。指定蓝色值。取值范围为 0 – 255 。
fAbsolute : 必选项。布尔值(Boolean)。指定改变是替换当前设置的绝对值,还是加到当前设置的相对值。此参数不等于零表示采用绝对值。否则表示采用相对值。

可以定义光源的虚拟位置,以及通过调整X轴和Y轴的数值来控制光源焦点的位置,还可以调整光源的形式(点光源或者锥形光源)指定光源是否模糊边界、光源的颜色、亮度等属

性。如果动态的设置光源,可能回产生一些意想不到的效果。

实现图片自动变色效果

复制代码
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>css滤镜</title>
<style>
body{}
.try{ margin-left:30px;}
</style>
</head>
<body>
<br /><br />
<div class=”try”><font color=”#CC33C2″>施杨de编程世界</font><br />
<br />
<div><img src=”image/ch2.gif” style=”filter:light(); width:400; height:300″ onload=”javascript:this.filters.light.addAmbient(10,250,100,55)”

onmousemove=”javascript:this.filters.light.changeColor(0,150,100,50,0)”/></div><br /><br /></div>
</body>
</html>
复制代码

9、Mask 滤镜
语法:{filter:mask(color=color)}

使用’MASK’属性可以为对象建立一个覆盖于表面的膜,其效果就象戴者有色眼镜看物体一样。

复制代码
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>css滤镜</title>
<style>
body{ filter:mask(color=yellow);}

try{ margin-left:30px;}

</style>
</head>
<body>
<br /><br />
<div id=”try”><font color=”#CC33C2″>施杨de编程世界</font><br />
<br />
<div><img src=”image/ch2.gif” /></div><br /><br /></div>
</body>
</html>
复制代码

虽然实现,但是效果并不想想象的那样帅,不好用。

10、Shadow 滤镜
语法:{filter:shadow(color=color,direction=direction)}

利用“Shadow”属性可以在指定的方向建立物体的投影,COLOR是投影色,DIRECTION是设置投影的方向。其中0度代表垂直向上,然后每45度为一个单位。它的默认值是向左的270

度。

filter:shadow(color=red,direction=225)
filter:shadow(color=blue,direction=225)
filter:shadow(color=gray,direction=225)

复制代码
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>css滤镜</title>
<style>
body{ filter:shadow(color=red,direction=225);}

try{ margin-left:30px;}

</style>
</head>
<body>
<br /><br />
<div id=”try”><font color=”#CC33C2″>施杨de编程世界</font><br />
<br />
<div><img src=”image/ch2.gif” /></div><br /><br /></div>
</body>
</html>
复制代码

效果:

11、Wave 滤镜 语法:{filter:wave(add=add,freq=freq,lightstrength=strength,phase=phase,strength=strength)}

‘wave’ 属性把对象按垂直的波形样式打乱。默认是“TRUE(非0)”,
“ADD”表示是否要把对象按照波形样式打乱,
“FREQ”是波纹的频率,也就是指定在对象上一共需要产生多少个完整的波纹,
“LIGHTSTRENGTH”参数可以对于波纹增强光影的效果,范围0—-100,
“PHASE”参数用来设置正弦波的偏移量。
“STRENGTH”代表振幅大小。

复制代码
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>css滤镜</title>
<style>
body{ filter:wave(add=add,freq=freq,lightstrength=strength,phase=phase,strength=20);}

try{ margin-left:30px;}

</style>
</head>
<body>
<br /><br />
<div id=”try”><font color=”#CC33C2″>施杨de编程世界</font><br />
<br />
<div><img src=”image/ch2.gif” /></div><br /><br /></div>
</body>
</html>
复制代码

效果:

jquery弹出层源码:

页面:

复制代码
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd”>
<!– saved from url=(0045)http://interface.eyecon.ro/demos/windows.html –>
<HTML xmlns=”http://www.w3.org/1999/xhtml”>
<HEAD><TITLE>Resizeable demo – Interface plugin for jquery</TITLE>
<META http-equiv=Content-Language content=en>
<META http-equiv=Content-Type content=”text/html; charset=utf-8″>
<SCRIPT
src=”js/jquery.js
type=text/javascript></SCRIPT>
<SCRIPT
src=”js/interface.js
type=text/javascript></SCRIPT>
<link href=”css/div_show.css” rel=”stylesheet” type=”text/css” media=”all”>
<META content=”MSHTML 6.00.6000.16735″ name=GENERATOR>
</HEAD>
<BODY><A id=windowOpen>管理员登陆</A>
<DIV id=window>
<DIV id=windowTop>
<DIV id=windowTopContent>登陆界面</DIV>
<IMG id=windowMin
src=”css/images/window_min.jpg”>
<IMG id=windowMax
src=”css/images/window_max.jpg”>
<IMG id=windowClose
src=”css/images/window_close.jpg”>
</DIV>
<DIV id=windowBottom>
<DIV id=windowBottomContent></DIV></DIV>
<DIV id=windowContent>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P></DIV><IMG id=windowResize
src=”css/images/window_resize.gif”>
</DIV>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<P></P>
<SCRIPT type=”text/javascript” src=”js/div_show.js”></SCRIPT>
<SCRIPT language=JavaScript type=text/javascript>var client_id = 1;</SCRIPT>

</BODY></HTML>

复制代码

css源码:

复制代码
BODY {
BACKGROUND: #fff; HEIGHT: 100%
}

window {

DISPLAY: none; LEFT: 200px; OVERFLOW: hidden; WIDTH: 400px; POSITION: absolute; TOP: 100px; HEIGHT: 300px

}

windowTop {

BACKGROUND-POSITION: right top; BACKGROUND-IMAGE: url(images/window_top_end.png); OVERFLOW: hidden; CURSOR: move; BACKGROUND-REPEAT: no-repeat; POSITION: relative; HEIGHT: 30px

}

windowTopContent {

BACKGROUND-POSITION: left top; FONT-WEIGHT: bold; FONT-SIZE: 14px; BACKGROUND-IMAGE: url(images/window_top_start.png); OVERFLOW: hidden; COLOR: #6caf00; TEXT-INDENT: 10px; LINE-HEIGHT: 30px; MARGIN-RIGHT: 13px; BACKGROUND-REPEAT: no-repeat; FONT-FAMILY: Arial, Helvetica, sans-serif; HEIGHT: 30px

}

windowMin {

RIGHT: 25px; CURSOR: pointer; POSITION: absolute; TOP: 10px

}

windowMax {

DISPLAY: none; RIGHT: 25px; CURSOR: pointer; POSITION: absolute; TOP: 10px

}

windowClose {

RIGHT: 10px; CURSOR: pointer; POSITION: absolute; TOP: 10px

}

windowBottom {

BACKGROUND-POSITION: right bottom; BACKGROUND-IMAGE: url(images/window_bottom_end.png); BACKGROUND-REPEAT: no-repeat; POSITION: relative; HEIGHT: 270px

}

windowBottomContent {

BACKGROUND-POSITION: left bottom; BACKGROUND-IMAGE: url(images/window_bottom_start.png); MARGIN-RIGHT: 13px; BACKGROUND-REPEAT: no-repeat; POSITION: relative; HEIGHT: 270px

}

windowResize {

RIGHT: 3px; CURSOR: se-resize; BOTTOM: 5px; POSITION: absolute

}

windowContent {

BORDER-RIGHT: #6caf00 1px solid; BORDER-TOP: #6caf00 1px solid; FONT-SIZE: 11px; LEFT: 10px; OVERFLOW: auto; BORDER-LEFT: #6caf00 1px solid; WIDTH: 375px; MARGIN-RIGHT: 10px; BORDER-BOTTOM: #6caf00 1px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; POSITION: absolute; TOP: 30px; HEIGHT: 255px; BACKGROUND-COLOR: #fff

}

windowContent * {

MARGIN: 10px

}
.transferer2 {
BORDER-RIGHT: #6baf04 1px solid; BORDER-TOP: #6baf04 1px solid; FILTER: alpha(opacity=30); BORDER-LEFT: #6baf04 1px solid; BORDER-BOTTOM: #6baf04 1px solid; BACKGROUND-COLOR: #b4f155; -moz-opacity: 0.3; opacity: 0.3
}
复制代码

js源码:

复制代码
$(document).ready(
function()
{
$(‘#windowOpen’).bind(
‘click’,
function() {
if($(‘#window’).css(‘display’) == ‘none’) {
$(this).TransferTo(
{
to:’window’,
className:’transferer2′,
duration: 400,
complete: function()
{
$(‘#window’).show();
}
}
);
}
this.blur();
return false;
}
);
$(‘#windowClose’).bind(
‘click’,
function()
{
$(‘#window’).TransferTo(
{
to:’windowOpen’,
className:’transferer2′,
duration: 400
}
).hide();
}
);
$(‘#windowMin’).bind(
‘click’,
function()
{
$(‘#windowContent’).SlideToggleUp(300);
$(‘#windowBottom, #windowBottomContent’).animate({height: 10}, 300);
$(‘#window’).animate({height:40},300).get(0).isMinimized = true;
$(this).hide();
$(‘#windowResize’).hide();
$(‘#windowMax’).show();
}
);
$(‘#windowMax’).bind(
‘click’,
function()
{
var windowSize = $.iUtil.getSize(document.getElementById(‘windowContent’));
$(‘#windowContent’).SlideToggleUp(300);
$(‘#windowBottom, #windowBottomContent’).animate({height: windowSize.hb + 13}, 300);
$(‘#window’).animate({height:windowSize.hb+43}, 300).get(0).isMinimized = false;
$(this).hide();
$(‘#windowMin, #windowResize’).show();
}
);
$(‘#window’).Resizable(
{
minWidth: 200,
minHeight: 60,
maxWidth: 700,
maxHeight: 400,
dragHandle: ‘#windowTop’,
handlers: {
se: ‘#windowResize’
},
onResize : function(size, position) {
$(‘#windowBottom, #windowBottomContent’).css(‘height’, size.height-33 + ‘px’);
var windowContentEl = $(‘#windowContent’).css(‘width’, size.width – 25 + ‘px’);
if (!document.getElementById(‘window’).isMinimized) {
windowContentEl.css(‘height’, size.height – 48 + ‘px’);
}
}
}
);
}
);

web前端开发技术教材
web前端技术开发视频
web前端开发技术教学大纲
» 本文来自:前端开发者 » 《前端开发精通CSS滤镜(filter)》
» 本文链接地址:https://www.rokub.com/7496.html
» 您也可以订阅本站:https://www.rokub.com
赞(0)
64K

评论 抢沙发

评论前必须登录!