H5中的SVG

一、什么是SVG?

可缩放矢量图形是基于可扩展标记语言(标准通用标记语言的子集),用于描述二维矢量图形的一种图形格式。它由万维网联盟制定,是一个开放标准。并不属于HTML5专有内容,在HTML5出现之前,就有SVG内容,HTML5只不过提供了SVG原生的内容

二、SVG与canvas的区别:

SVG :

实际开发中,多用SVG
可以被搜索引擎搜索到
不依赖分辨率
支持事件处理器
不适合游戏
大型渲染区域的程序(例如,百度地图)

Canvas

依赖分辨率
不支持事件绑定
最适合网页游戏
可以用图片格式保存图像
不是是SVG还是Canvas,在一个页面中都可以同时定义多个

三、SVG 绘制图形

使用<svg></svg>标签,类似于canvas元素,但可以使用css样式;使用svg绘制图形,必须定义在svg元素中。

  • 绘制矩形
<rect x="100" y="100" width="200" height="150" fill="blue" stroke="red" 
stroke-width="5"> </rect>
  • 圆形
<circle cx="50" cy="50" r="50"></circle>
  • 椭圆
 <ellipse cx="" cy="" rx="" ry="">
  • 直线
<line x1="10" y1="10" x2="200" y2="200" stroke-width="10" stroke="black">
必须加颜色,否则不显示
  • 折线
points - 设置起点 折点及重点,x和y用逗号分隔,多个折点用空格隔开
 会默认将折线中的区域(起点到终点),默认提供黑色,将fill设置为canvas的颜
色,将stroke设置为另一种颜色
 <polyline points=" 10,10 20,20 30,30">
  • 多边形
 不用考虑折点的显示问题
  <polygon points="10,10 20,20 30,30 10,10">

综合实例:

<svg id="huatu" style="width:400px;height:400px;background:red">
    <rect x="10" y="10" width="200" height="150" fill="blue" stroke="white" stroke-width="4"> </rect>
    <circle cx="100" cy="230" r="50" fill="yellow" stroke="orange" stroke-width="4"></circle>
    <ellipse cx="100" cy="340" rx="80" ry="50" fill="green"></ellipse>
    <line x1="230" y1="20" x2="230" y2="380" stroke-width="10" stroke="black"></line>
    <!--<polyline points="230,150 300,150 400,40 230,150" fill="red" stroke="white" stroke-width="20px">-->
    <polygon points=250,50 350,50 300,200 250,50" fill="red" stroke="white></polygon>
</svg>
SVG绘图

四、渐变

<svg style="width:400px;height:400px">
    <!--svg渐变效果几个问题
    1.设置linearGradient的坐标值都得是百分比
    2.设置通过stop设置颜色,offset的值必须是百分比,而且stop必须要有结束符<stop/>或<stop></stop>
    3.将绘制的图形与渐变效果结合时 fill="url(#linearGradient的id值)"-->
            <defs >
                <!--lineargradient渐变元素-->
                <linearGradient id="linear" x1="0%" y1="0%" x2="100%" y2="100%">
                    <!--stop添加渐变颜色-->
                    <stop offset="0%" stop-color="red"/>
                    <stop offset="100%" stop-color="green"/>
                </linearGradient>
            </defs>
            <rect  x="0" y="0" width="400" height="400" fill="url(#linear)" stroke="black" stroke-width="5" ></rect>
        </svg>
渐变

高斯模糊

<svg width="500" height="500" " > 
    <defs> 
      <filter id="Gaussian_Blur"> //滤镜
            <!--//fegaussianblur- 高斯模糊,stdDeviation - 设置模糊程度 -->
                <feGaussianBlur in="SourceGraphic" stdDeviation="10" /> 
                <!--in="SourceGraphic"是固定写法-->
       </filter>
  </defs>
<rect x="0" y="0" width="400" height="400" fill="red" filter="url(#Gaussian_Blur">
 </svg>
高斯模糊
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,408评论 4 371
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,690评论 2 307
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,036评论 0 255
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,726评论 0 221
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,123评论 3 296
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,037评论 1 225
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,178评论 2 318
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,964评论 0 213
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,703评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,863评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,333评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,658评论 3 263
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,374评论 3 244
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,195评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,988评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,167评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,970评论 2 279

推荐阅读更多精彩内容

  • 在React Native中使用ARTReact Native ART 究竟是什么?所谓ART,是一个在React...
    JackfengGG阅读 9,382评论 2 50
  • 一:什么是SVG? 对于SVG的定义如下: ①:SVG 指的是可伸缩矢量图形 (Scalable Vector G...
    GreenHand1阅读 764评论 0 1
  • SVG API: SVG是一种可缩放矢量图形,一种二维图形表示语言 与canvas不同的是,在浏览器的开发工具中能...
    Iris_mao阅读 939评论 0 5
  • 一、栅格图形和矢量图形栅格图形:也称位图,图像由一组二维像素网格表示。Canvas 2d API 就是一款栅格图形...
    linda102阅读 1,079评论 0 4
  • 一、什么是SVG? SVG指可伸缩矢量图形(Scalable Vector Graphics); SVG用来定义用...
    清心挽风阅读 1,338评论 1 3