SVG开发用法

作者: 该昵称注册中 | 来源:发表于2018-05-26 16:44 被阅读0次

svg

什么是svg

Scalable Vector Graphics 的简称,中文为可缩放矢量图形 ,web 页面矢量图.

优势
1.SVG可被非常多的工具读取和修改(比如记事本)
2.SVG与JPEG和GIF图像比起来,尺寸更小,且可压缩性更强。
3.SVG是可伸缩的
4.SVG图像可在任何的分辨率下被高质量地打印
5.SVG可在图像质量不下降的情况下被放大
6.SVG图像中的文本是可选的,同时也是可搜索的(很适合制作地图)
7.SVG可以与Java技术一起运行
7.SVG是开放的标准
8.SVG文件是纯粹的XML
在web浏览器钟显示SVG
1:使用<iframe> 元素嵌入SVG图像
2:使用<img>元素嵌入SVG图像
3:将SVG图像作为背景图插入
4:直接使用<SVG>元素
5:使用<embed>元素来嵌入SVG图像
6:使用<object>元素嵌入SVG图像

<iframe src="../img/svg/img1.svg" width="200px" ></iframe>  只会显示图片一部分
 <image src="../img/svg/img1.svg" width="200px"></image>  会等比缩放全部显示
 <div style="background: url('../img/svg/img1.svg') no-repeat center;background-size: 200px 300px;width: 200px;height: 300px"></div>  元素也要设置宽和高
 <div><svg></svg></div>   svg为图片矢量数据 把图片数据直接丢进去就行
 <embed src="../img/svg/img1.svg" width="400px" height="400px" type="image/svg+xml"></embed> 加上type
 <object data="../img/svg/img1.svg"  width="50%" height="50%"></object> 注意这里是data 
 以上的svg图片宽和高都可以设置百分比
 
方法
在使用JS在页面上对HTML进行操作时,一个很重要的对象是docuemnt,无论是获取还是创建dom对象,都要通过document,如果SVG是直接嵌套在HTMl内容中,就会公用一个docunemnt,从而获取SVG元素对象.但是SVG在多数时候,SVG并不会直接嵌套在HTML之中重现出来,更多时候通过:
一:IMG标签引进,或通过背景图片css url引入,SVG只是单纯的当做图片来使用,所以**无法使用JS来操作它们**。
二:通过object,embed或者iframe标签将SVG文件引入到HTML页面上呈现出来,对于这种情况,标签实际上会把data或src属性指定的内容相对独立的引入到页面上来.这就使得其中的内容有完全属于自己的document对象.**导致原来的document对象无法获得上述标签引入的SVG文档中元素,更不用说操作里面的属性了**.但是**我们可以通过一个方法获取所引用的SVG文档的document对象,那就是getSVGDocument().例如document.getElementById("android-down").getSVGDocument()
当然getSVGDocument()是需要浏览器支持才行.对于目前最新浏览器来说这些都是标配方法,如果通过object和iframe引入SVG文件,除了getSVGDocuemnt(),还可以使用contentDocument属性获取其引入文档对应的document对象.区别在于如果引入的不是SVG文件,而是XML或HTML等等,contentDocument依然会返回对象,而getSVGDocument()则返回null.注意有同源策略限制,非同源,浏览器就会禁止docuemnt对象

在动态添加SVG图片时,XML是有命名空间的.命名空间通过JS创建SVG对象的时候就会引起一些麻烦.不是通过createElement()创建的。
要通过var c = document.createElementNS('http://www.w3.org/2000/svg','circle');创建时并把http://www.w3.org/2000/svg命名空间作为第一个参数传进去
本文参考

https://www.w3cplus.com/html5/svg-introduction-and-embedded-html-page.html © w3cplus.com

https://blog.csdn.net/happyduoduo1/article/details/51789577

相关文章

  • SVG开发用法

    svg 什么是svg 是Scalable Vector Graphics 的简称,中文为可缩放矢量图形 ,web ...

  • 9.SVG动画

    SVG: 资料1资料2 用法: VectorDrawable: 创建基于XML的SVG图形 AnimatedVec...

  • svg 用法

  • SVG用法

    常见引入svg的方法 .svg文件的常见结构: html页面中绘制svg的常见方法: 关于SVG的viewBox:...

  • SVG指令 知道这些就够了

    SVG指令常用来编辑图标等图片资源,当然,Android,也支持SVG指令设计图片,这篇博客收录了几个常用指令用法...

  • svg形状

    SVG 有一些预定义的形状元素,可被开发者使用和操作。 SVG 形状 SVG 有一些预定义的形状元素,可被开发者使...

  • SVG绘制图形

    SVG和CANVAS SVG - 实际开发中,多用SVG 不依赖分辨率 支持事件处理器 不适合游戏 大型渲...

  • canvas

    @(HTML5)[canvas与SVG] [TOC] 十 、canvas canvas的基本用法 canvas是H...

  • ionic4 customer icon useless(自定义

    1.usage:(用法:)icon url:(图标下载地址) 2.要点:(key points)svg icon ...

  • SVG简介及其用法

    一、SVG - 基础 1.什么是SVG 2.SVG的优势 3.SVG与canvas的区别 4.用途 5.svg再将...

网友评论

    本文标题:SVG开发用法

    本文链接:https://www.haomeiwen.com/subject/fbbmjftx.html