学习SVG系列(5):SVG渐变
SVG渐变
渐变是一种从一种颜色到另一种颜色的平滑过渡,可以把多个颜色的过渡应用到同一个元素。
渐变有两种:
Linear
Redial
线性渐变-<linearGradient>
linearGradient元素用于定义线性渐变
linearGradient标签必须嵌套在defs标签的内部。defs标签是definitions的缩写,它可对诸如渐变之类的特殊元素进行定义。
线性渐变可以定义为水平、垂直或角渐变:
1、当y1和y2相等,而x1和x2不同时,可创建水平渐变
2、当x1和x2相等,而y1和y2不同时,可创建垂直渐变
3、当x1和x2不同,且y1和y2不同时,可创建角形渐变
实例1
定义垂直线性渐变从黄色到蓝色的椭圆形,垂直渐变:

SVG代码:
<svg xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="grad1" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:rgb(255, 216, 0);stop-opacity:1;" />
<stop offset="100%" style="stop-color:rgb(0, 255, 255);stop-opacity:1;"/>
</linearGradient>
</defs>
<ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)"/>
</svg>
实例2
定义水平线性渐变从黄色到蓝色的椭圆形,水平渐变:

SVG代码:
<svg xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:rgb(255, 216, 0);stop-opacity:1;" />
<stop offset="100%" style="stop-color:rgb(0, 255, 255);stop-opacity:1;"/>
</linearGradient>
</defs>
<ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)"/>
</svg>
实例3
定义角形渐变从黄色变蓝色

SVG代码:
<svg xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="grad1" x1="0%" y1="0%" x2="50%" y2="50%">
<stop offset="0%" style="stop-color:rgb(255, 216, 0);stop-opacity:1;" />
<stop offset="100%" style="stop-color:rgb(0, 255, 255);stop-opacity:1;"/>
</linearGradient>
</defs>
<ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad1)"/>
</svg>
实例4
放射性渐变-<radialGradient>
定义一个放射性渐变从白色到红色椭圆:

SVG代码:
<svg height="400" width="400" xmlns="http://www.w3.org/2000/svg">
<defs>
<radialGradient id="rad1" 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(255, 0, 0);stop-opacity:1"/>
</radialGradient>
</defs>
<ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#rad1)"/>
</svg>
代码解析:
1、radialGradient标签的id属性可为渐变定义一个唯一的名称
2、CX、CY和r属性定义的最外层圆和Fx和Fy定义的最内层圆
3、渐变颜色范围可以由两个或两个以上的颜色组成。每种颜色用一个<stop>标签指定。offset属性用来定义渐变色开始和结束
4、填充属性把ellipse元素链接到此渐变
学习SVG系列(5):SVG渐变的更多相关文章
- 学习SVG系列(4):SVG滤镜效果
注意:Internet Explorer和Safari不支持SVG滤镜 <defs>.<filter> 所有互联网的SVG滤镜定义在<defs>元素中,<fi ...
- 学习SVG系列(3):SVG Stroke属性
SVG stroke 属性 1.stroke 2.stroke-width 3.stroke-linecap 4.stroke-dasharray 5.stroke-opacity 6.stroke- ...
- 学习SVG系列(1):SVG基础
什么是SVG? 1.指可伸缩矢量图形 2.用来定义用于网络的基于矢量的图形 3.使用XML格式定义图形 4.图像在放大或改变尺寸的情况下其图形不会有所损失 5.万维网联盟的标准, 用于描述二维矢量图形 ...
- SVG系列教程:SVG简介与嵌入HTML页面的方式
地址:http://www.w3cplus.com/html5/svg-introduction-and-embedded-html-page.html 随着技术向前的推进,SVG相关的讨论也越渐频繁 ...
- HTML5 学习03——内联 SVG
什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用于定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺 ...
- MongoDB学习笔记系列
回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...
- 【翻译svg教程 】svg 的坐标系统
http://tutorials.jenkov.com/svg/svg-coordinate-system.html svg的坐标系统(和大多数计算机绘图的坐标系统)和数学中绘图系统有点不一样 数学/ ...
- Nagios学习实践系列——基本安装篇
开篇介绍 最近由于工作需要,学习研究了一下Nagios的安装.配置.使用,关于Nagios的介绍,可以参考我上篇随笔Nagios学习实践系列——产品介绍篇 实验环境 操作系统:Red Hat Ente ...
- Nagios学习实践系列——配置研究[监控当前服务器]
其实上篇Nagios学习实践系列——基本安装篇只是安装了Nagios基本组件,虽然能够打开主页,但是如果不配置相关配置文件文件,那么左边菜单很多页面都打不开,相当于只是一个空壳子.接下来,我们来学习研 ...
随机推荐
- js--内容判断(依赖于jq)
/** * 判断是否为空 * @param {Object} $element */ function nullVerify($element) { if(!$element.val() && ...
- 前端优化之图片延迟加载(lazyload.js)
要想缩短首屏加载时间,思路一般是减少http请求次数和降低每次的请求量.本文中使用现成的lazyload.js插件,文末会放出下载地址. lazyload.js可以实现图片分批次加载,不是一次性加载完 ...
- java的前台与后台
技术上:前台是指web展示,webservice接口等输入输出接口,后台是指支持这些接口的程序. 例如读写数据库,读写文件,业务逻辑处理. 业务上来讲:前台是提供给最终用户使用的界面,后台是指管理使用 ...
- zookeeper学习系列:四、Paxos算法和zookeeper的关系
一.问题起源 淘宝搜索的博客 http://www.searchtb.com/2011/01/zookeeper-research.html 提到Paxos是zookeeper的灵魂 有一篇文章标题 ...
- oracle date change
select to_char(sysdate,'yyyy') from dual;-----2016select to_number(to_char(sysdate,'MM'))||'月' from ...
- 荣品RP4412开发板烧写内核cannot load出错的原因
问:荣品RP4412开发板烧写必须要配置Xmanager吗? 现在我烧写内核出现这个错误是什么原因呢? 答:4412文件夹下没有zImage这个文件, 你打开4412这个文件夹. 你都拼写错了, zI ...
- 如何下载和安装CocoaPods
朋友自己学习了一段时间就去公司实习了去了之后公司用的是CocoaPods,他一脸茫然的向我求助,我这才想起来写着一遍为了帮助更多的朋友 CocoaPods是什么? 当你开发iOS应用时,会经常使用到很 ...
- C++中的数组越界
C++中数组发生越界错误时, compiling过程不会报错, linking过程也不会报错, 会在executing过程中发生意想不到的错误或问题.
- DevExpress--xtraTabbedMdiManager控件
因项目需要要实现类似jquery的Tab效果,所以要用到xtraTabbedMdiManager控件 使用xtraTabbedMdiManager一般配合navBarControl(上期已写过) 在工 ...
- [NOI 2006] 最大获利 80分
最后两点怎么搞都要30s+,但是我不会什么优化啊…暂时就这样吧.Dinic的时间复杂度是O(N^2*M) 这题和TDL的幼儿园模板是一样的. 这次写网络流给自己计时了,大约是40min左右,后来都跑去 ...