hand
_1_12_154
4
返回栏目
0k
3k
5k
1k
2k
0.2k
2k
1k
2k
3k
2k
3k
2k
3k
3k
0.3k
0k
2k
0k
1k
0.1k
0k
0k
2k
2k
3k
0.2k
3k
0k
2k
2k
2k
3k
2k
2k
0k
4k
2k
2k
0k
3k
3k
2k
2k
2k
1k
3k
1k
3k
2k
1k
0.8k
2k
0k
2k
2k
2k
2k
3k
0.4k
4k
2k
5k
2k
3k
2k
3k
3k
4k
2k
3k
2k
3k
0.7k
2k
0.8k
3k
2k
4k
2k
2k
2k
2k
2k
3k
3k
3k
3k
4k
3k
3k
0k
2k
2k
0k
3k
2k
3k
1k
2k
2k
3k
3k
3k
3k
5k
3k
3k
3k
4k
3k
5k
4k
4k
4k
4k
1k
2k
2k
2k
2k
2k
2k
1k
2k
3k
3k
3k
3k
3k
2k
3k
4k
2k
2k
3k
5k
3k
3k
3k
4k
3k
3k
2k
3k
5k
4k
3k
4k
4k
2k
3k
3k
1k
3k
4k
4k
2k
2k
2k
3k
2k
4k
2k
4k
2k
4k
1k
2k
1k
2k
2k
1k
2k
2k
2k
2k
2k
2k
1k
1k
4k
3k
2k
2k
3k
3k
6k
2k
8k
3k
7k
2k
3k
3k
4k
3k
5k
4k
3k
3k
2k
2k
3k
3k
2k
2k
2k
3k
2k
6k
4k
4k
4k
4k
3k
3k
2k
4k
2k
3k
3k
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
0k
返回前端 - HTML5栏目
作者:
贺及楼
成为作者
更新日期:2025-02-27 13:04:41
在前端开发中,HTML5 的 <svg>
(可缩放矢量图形)为我们提供了强大的功能来创建和操作矢量图形。其中,滤镜效果可以让我们为 SVG 图形添加各种视觉特效,阴影滤镜就是一种常用且实用的滤镜效果,它能为图形增添立体感和层次感,使页面更加生动有趣。本文将详细介绍 SVG 阴影滤镜的使用方法,并通过示例代码进行演示。
SVG 阴影滤镜是通过 <filter>
元素来定义的。在 <filter>
元素内部,我们可以使用各种滤镜原语(如 <feGaussianBlur>
、<feOffset>
等)来创建阴影效果。以下是创建阴影滤镜的基本步骤:
<filter>
元素在 SVG 的 <defs>
部分定义一个滤镜。<filter>
元素内部,使用不同的滤镜原语来实现阴影的模糊、偏移等效果。下面是一个简单的示例,展示了如何使用 SVG 阴影滤镜为一个矩形添加阴影效果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SVG 阴影滤镜示例</title>
</head>
<body>
<svg width="400" height="300">
<!-- 定义滤镜 -->
<defs>
<filter id="shadow">
<!-- 高斯模糊滤镜原语,使阴影模糊 -->
<feGaussianBlur in="SourceAlpha" stdDeviation="3" />
<!-- 偏移滤镜原语,将模糊后的阴影偏移一定距离 -->
<feOffset dx="3" dy="3" result="offsetblur" />
<!-- 合并滤镜原语,将偏移后的阴影与原始图形合并 -->
<feComponentTransfer>
<feFuncA type="linear" slope="0.5" />
</feComponentTransfer>
<feMerge>
<feMergeNode />
<feMergeNode in="SourceGraphic" />
</feMerge>
</filter>
</defs>
<!-- 绘制矩形并应用滤镜 -->
<rect x="50" y="50" width="200" height="150" fill="blue" filter="url(#shadow)" />
</svg>
</body>
</html>
<defs>
部分:定义了一个名为 shadow
的滤镜。<feGaussianBlur>
:对图形的透明度通道(SourceAlpha
)进行高斯模糊处理,stdDeviation
属性控制模糊的程度。<feOffset>
:将模糊后的阴影在水平方向(dx
)和垂直方向(dy
)上偏移一定距离。<feComponentTransfer>
:调整阴影的透明度,这里将透明度降低为原来的一半。<feMerge>
:将偏移后的阴影与原始图形合并,feMergeNode
分别表示阴影和原始图形。<rect>
元素:绘制一个蓝色的矩形,并通过 filter="url(#shadow)"
属性将定义好的滤镜应用到矩形上。通过调整滤镜原语的参数,我们可以创建不同效果的阴影。以下是一些常用参数的说明:
| 参数 | 说明 |
| —— | —— |
| stdDeviation
(<feGaussianBlur>
) | 控制模糊的程度,值越大,阴影越模糊。 |
| dx
和 dy
(<feOffset>
) | 分别控制阴影在水平和垂直方向上的偏移距离。 |
| slope
(<feFuncA>
) | 调整阴影的透明度,值越小,阴影越淡。 |
例如,我们可以将上述示例中的 stdDeviation
值增大,使阴影更加模糊:
<feGaussianBlur in="SourceAlpha" stdDeviation="5" />
SVG 阴影滤镜在现代浏览器中具有良好的兼容性,但在一些旧版本的浏览器中可能存在兼容性问题。在使用时,建议进行充分的测试,以确保在目标浏览器中能够正常显示。
SVG 阴影滤镜是一种强大的工具,可以为 SVG 图形添加逼真的阴影效果,提升页面的视觉效果。通过合理使用滤镜原语和调整参数,我们可以创建出各种不同风格的阴影。希望本文的介绍和示例代码能帮助你更好地掌握 SVG 阴影滤镜的使用。
前端 - HTML5
整章节共240节
快分享给你的小伙伴吧 ~