SVG 教程 (六)SVG 阴影,SVG 渐变 - 线性,SVG 渐变- 放射性
SVG 阴影
注意: Internet Explorer和Safari不支持SVG滤镜!
<defs> 和 <filter>
所有互联网的SVG滤镜定义在<defs>元素中。<defs>元素定义短并含有特殊元素(如滤镜)定义。
<filter>标签用来定义SVG滤镜。<filter>标签使用必需的id属性来定义向图形应用哪个滤镜?
SVG <feOffset>
实例 1
<feOffset>元素是用于创建阴影效果。我们的想法是采取一个SVG图形(图像或元素)并移动它在xy平面上一点儿。
第一个例子偏移一个矩形(带<feOffset>),然后混合偏移图像顶部(含<feBlend>):
- SVG 教程 (六)SVG 阴影,SVG 渐变 - 线性,SVG 渐变- 放射性
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="f1" x="0" y="0" width="200%" height="200%"><feOffset result="offOut" in="SourceGraphic" dx="20" dy="20" /><feBlend in="SourceGraphic" in2="offOut" mode="normal" /></filter></defs><rect width="90" height="90" stroke="green" stroke-width="3"fill="yellow" filter="url(#f1)" /> </svg>
对于Opera用户: 查看SVG文件(右键单击SVG图形预览源)。
代码解析:
- <filter>元素id属性定义一个滤镜的唯一名称
- <rect>元素的滤镜属性用来把元素链接到"f1"滤镜
实例 2
现在,偏移图像可以变的模糊(含 <feGaussianBlur>):
- SVG 教程 (六)SVG 阴影,SVG 渐变 - 线性,SVG 渐变- 放射性
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="f1" x="0" y="0" width="200%" height="200%"><feOffset result="offOut" in="SourceGraphic" dx="20" dy="20" /><feGaussianBlur result="blurOut" in="offOut" stdDeviation="10" /><feBlend in="SourceGraphic" in2="blurOut" mode="normal" /></filter></defs><rect width="90" height="90" stroke="green" stroke-width="3"fill="yellow" filter="url(#f1)" /> </svg>
对于Opera用户: 查看SVG文件(右键单击SVG图形预览源)。
代码解析:
- <feGaussianBlur>元素的stdDeviation属性定义了模糊量
实例 3
现在,制作一个黑色的阴影:
- SVG 教程 (六)SVG 阴影,SVG 渐变 - 线性,SVG 渐变- 放射性
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="f1" x="0" y="0" width="200%" height="200%"><feOffset result="offOut" in="SourceAlpha" dx="20" dy="20" /><feGaussianBlur result="blurOut" in="offOut" stdDeviation="10" /><feBlend in="SourceGraphic" in2="blurOut" mode="normal" /></filter></defs><rect width="90" height="90" stroke="green" stroke-width="3"fill="yellow" filter="url(#f1)" /> </svg>
对于Opera用户: 查看SVG文件(右键单击SVG图形预览源)。
代码解析:
- <feOffset>元素的属性改为"SourceAlpha"在Alpha通道使用残影,而不是整个RGBA像素。
实例 4
现在为阴影涂上一层颜色:
- SVG 教程 (六)SVG 阴影,SVG 渐变 - 线性,SVG 渐变- 放射性
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="f1" x="0" y="0" width="200%" height="200%"><feOffset result="offOut" in="SourceGraphic" dx="20" dy="20" /><feColorMatrix result="matrixOut" in="offOut" type="matrix"values="0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0 1 0" /><feGaussianBlur result="blurOut" in="matrixOut" stdDeviation="10" /><feBlend in="SourceGraphic" in2="blurOut" mode="normal" /></filter></defs><rect width="90" height="90" stroke="green" stroke-width="3"fill="yellow" filter="url(#f1)" /> </svg>
对于Opera用户: 查看SVG文件(右键单击SVG图形预览源)。
代码解析:
- <feColorMatrix>过滤器是用来转换偏移的图像使之更接近黑色的颜色。 '0.2'矩阵的三个值都获取乘以红色,绿色和蓝色通道。降低其值带来的颜色至黑色(黑色为0)
SVG 渐变 - 线性
SVG 渐变
渐变是一种从一种颜色到另一种颜色的平滑过渡。另外,可以把多个颜色的过渡应用到同一个元素上。
SVG渐变主要有两种类型:
- Linear
- Radial
SVG 线性渐变 - <linearGradient>
<linearGradient>元素用于定义线性渐变。
<linearGradient>标签必须嵌套在<defs>的内部。<defs>标签是definitions的缩写,它可对诸如渐变之类的特殊元素进行定义。
线性渐变可以定义为水平,垂直或角渐变:
- 当y1和y2相等,而x1和x2不同时,可创建水平渐变
- 当x1和x2相等,而y1和y2不同时,可创建垂直渐变
- 当x1和x2不同,且y1和y2不同时,可创建角形渐变
实例 1
定义水平线性渐变从黄色到红色的椭圆形:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" /><stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" /></linearGradient></defs><ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)" /> </svg>
对于Opera用户:查看SVG文件(右键单击SVG图形预览源)。
代码解析:
- <linearGradient>标签的id属性可为渐变定义一个唯一的名称
- <linearGradient>标签的X1,X2,Y1,Y2属性定义渐变开始和结束位置
- 渐变的颜色范围可由两种或多种颜色组成。每种颜色通过一个<stop>标签来规定。offset属性用来定义渐变的开始和结束位置。
- 填充属性把 ellipse 元素链接到此渐变
实例 2
定义一个垂直线性渐变从黄色到红色的椭圆形:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><linearGradient id="grad1" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" /><stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" /></linearGradient></defs><ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)" /></svg>
对于Opera用户:查看SVG文件(右键单击SVG图形预览源)。
实例 3
定义一个椭圆形,水平线性渐变从黄色到红色并添加一个椭圆内文本:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" /><stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" /></linearGradient></defs><ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)" /><text fill="#ffffff" font-size="45" font-family="Verdana" x="150" y="86">SVG</text> </svg>
对于Opera用户:查看SVG文件(右键单击SVG图形预览源)。
代码解析:
- <text> 元素是用来添加一个文本
SVG 渐变- 放射性
SVG 放射性渐变 - <radialGradient>
<radialGradient>元素用于定义放射性渐变。
<radialGradient>标签必须嵌套在<defs>的内部。<defs>标签是definitions的缩写,它可对诸如渐变之类的特殊元素进行定义。
实例 1
定义一个放射性渐变从白色到蓝色椭圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><radialGradient id="grad1" cx="50%" cy="50%" r="50%" fx="50%" fy="50%"><stop offset="0%" style="stop-color:rgb(255,255,255);stop-opacity:0" /><stop offset="100%" style="stop-color:rgb(0,0,255);stop-opacity:1" /></radialGradient></defs><ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)" /> </svg>
对于Opera用户:查看SVG文件(右键单击SVG图形预览源)。
代码解析:
- <radialGradient>标签的 id 属性可为渐变定义一个唯一的名称
- CX,CY和r属性定义的最外层圆和Fx和Fy定义的最内层圆
- 渐变颜色范围可以由两个或两个以上的颜色组成。每种颜色用一个<stop>标签指定。offset属性用来定义渐变色开始和结束
- 填充属性把ellipse元素链接到此渐变
实例 2
定义放射性渐变从白色到蓝色的另一个椭圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><radialGradient id="grad1" cx="20%" cy="30%" r="30%" fx="50%" fy="50%"><stop offset="0%" style="stop-color:rgb(255,255,255);stop-opacity:0" /><stop offset="100%" style="stop-color:rgb(0,0,255);stop-opacity:1" /></radialGradient></defs><ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)" /> </svg>
对于Opera用户:查看SVG文件(右键单击SVG图形预览源)。
原文:http://www.runoob.com/svg/svg-grad-radial.html
转自:SVG 教程 (六)SVG 阴影,SVG 渐变 - 线性,SVG 渐变- 放射性
SVG 教程 (六)SVG 阴影,SVG 渐变 - 线性,SVG 渐变- 放射性相关推荐
- SVG 教程 (七)SVG 实例,SVG 参考手册
SVG 实例 在线实例 下面的例子是把SVG代码直接嵌入到HTML代码中. 谷歌Chrome,火狐,Internet Explorer9,和Safari都支持. 注意:下面的例子将不会在Opera运行 ...
- SVG 教程 (五)文本,Stroke 属性,SVG 滤镜,SVG 模糊效果
SVG <text> SVG 文本 - <text> <text> 元素用于定义文本. 实例 1 写一个文本: 下面是SVG代码: <svg xmlns=&q ...
- 画布渐变以及svg图形
目录 一.画布渐变 1.线性渐变 2.径向渐变 3.文本渐变 二.svg 一.制作图形 1.制作矩形 2.制作圆形 3.绘制直线和折线 4.绘制闭合多边形 二.动画 1.基础动画 2.形变动画 3.路 ...
- html中如何设置图片填充颜色渐变,实现SVG图标的渐变填充效果
2016年我写过一篇文章如何使用SVG图标,其"试验性部分"的结语是个警告 - "抱歉,渐变填充无法工作". 我指的是像fill: linear-gradien ...
- SVG 教程 (四)多边形,曲线,路径
SVG <polygon> SVG 多边形 - <polygon> 实例 1 <polygon> 标签用来创建含有不少于三个边的图形. 多边形是由直线组成,其形状是 ...
- SVG 教程 (三)圆形,椭圆,直线
SVG <circle> SVG 圆形 - <circle> <circle> 标签可用来创建一个圆: 下面是SVG代码: <svg xmlns=" ...
- SVG 教程 (二)矩形
SVG <rect> SVG Shapes SVG有一些预定义的形状元素,可被开发者使用和操作: 矩形 <rect> 圆形 <circle> 椭圆 <elli ...
- SVG 教程 (一)
SVG 简介 SVG 是使用 XML 来描述二维图形和绘图程序的语言. 学习之前应具备的基础知识: 继续学习之前,你应该对以下内容有基本的了解: HTML XML 基础 如果希望首先学习这些内容,请在 ...
- css锥形渐变结合SVG实现环形进度条
css锥形渐变结合SVG实现环形进度条 准备: 锥形渐变 MDN:https://developer.mozilla.org/zh-CN/docs/Web/CSS/gradient/conic-gra ...
最新文章
- digitalocean如何还原出厂设置
- mongodb windows安装
- python中双冒号[::]切片的作用
- 头条上python广告_满大街都是Python广告,真的如广告说的那样方便吗?,学精通后真能月如过万吗?业内大佬怎么看?...
- junit测试找不到数据库_将数据库日志添加到JUnit3
- python和gui结合实例_Python GUI —— 简单例子+讲解
- UI设计灵感|注册登录页面怎样设计才更合理?
- java web请求转发_Javaweb请求转发及重定向实现详解
- 标准布局类(11中布局类)
- 通信原理及matlab仿真实验指导书,通信原理实验指导书——2015.pdf
- 实用:AE/PR 视频交换格式哪家强?
- 《花花公子》刊登1985年乔布斯专访
- cpua55和a53哪个好_也来谈谈目前最新的A55架构
- Lenovo/联想乐Phone S680 root教程_方法
- html5视频在线剪辑,五种剪辑方法让视频更精彩
- 如何用python编写程序打开csv格式文件
- 新团队成员之间破冰训练
- QWidget/QToolBar::addAction的设计真是绝妙
- wince挂起和唤醒_relayon
- 标准查询运算符(SQO)