美文网首页
svg 使用心得

svg 使用心得

作者: viviChen | 来源:发表于2019-04-30 11:57 被阅读0次
image.png

最近接触扬州电厂项目,了解了关于SVG的内容,下面我就记录一下自己使用的心得。

首先,我们很容易地可以搜索到很多svg的使用指南,例如阮老师的SVG 图像入门教程,很轻松地通过上面的例子实现HTML嵌入svg并实现矩形、折线等相关效果,这些就不用重复赘述了,主要吐槽一下这复杂的使用操作。

(1)svg可以很好地进行页面的自适应(设置viewBox)。

(2)JavaScript可以很好地操作svg里的元素,实现相关的功能,例如上图数字hover后的tooltip效果,麻烦点在于要不停地计算坐标的位置。

(3)svg可以通过定义 marker 标签,很好的实现箭头的效果,箭头可以根据折线或直线的方向自适应。

<!-- 箭头的定义 -->
<defs>
  <marker
  id="arrow"
  markerWidth="10"
  markerHeight="10"
  refX="0"
  refY="3"
  orient="auto"
  markerUnits="strokeWidth"
  >
    <path d="M0,0 L0,6 L5,3 z" fill="#cbcbcb"></path>
  </marker>
</defs>

<!-- 箭头的使用-->
<polyline
  points="490,127 506,127 506,86"
  fill="none"
  stroke="#cbcbcb"
  marker-end="url(#arrow)"
></polyline>

(4)recttext等标签都是无法嵌套的(更不用说svg里面嵌套html代码了),例如如果希望再矩形里面显示字,必须重新写一个text标签定位到rect元素内部;如果在某个地方显示一行文字,中间有个别文字是其他颜色,也必须分为不同的text进行定位 :tw-1f31d:。

(5)使用 g 标签组合图形,在其他地方使用到组合图形只能是个复制、粘贴的作用,不能动态地修改里面的任何东西,包括文字。

总之,svg让人头疼的就是不停的定位定位定位!!!

最后对比一下svg和canvas:
(因为本项目的svg图会存在一些操作dom元素,交互的一些内容,所以毫不犹豫地选择了svg。)

svg是一种基于XML描述2D图像的语言;canvas是通过JavaScript来绘制2d图形。

canvas svg
依赖分辨率 不依赖分辨率,可以很好的自适应
不支持事件处理器 支持事件处理器
弱的文本渲染能力 最适合带有大型渲染区域的应用程序
能够以.png或.jpg保存图像 复杂度高会减慢渲染速度
最适合图像密集型的游戏,其中的许多对象会被频繁重绘 不适合游戏应用

相关文章

  • svg 使用心得

    最近接触扬州电厂项目,了解了关于SVG的内容,下面我就记录一下自己使用的心得。 首先,我们很容易地可以搜索到很多s...

  • Android图片之svg

    1.SVG是什么2.SVG优点3.SVG使用4.获取SVG5.封装使用6.SVG动画 1.SVG是什么? SVG(...

  • AI导出svg图片位置改变

    在AI中导出svg格式时,使用存储为svg,不使用导出为svg(注:导出为svg会使图片出现位置改变等)

  • JS创建SVG标签/SVG使用JS动态生成饼图/SVG动画/VM

    JS创建SVG标签 SVG使用JS动态生成饼图 SVG动画 SVG兼容问题,需要使用VML(兼容ie4-ie7) ...

  • SVG学习笔记

    SVG学习笔记 简介 SVG使用XML来描述二维图形和绘图程序的语言。 SVG形状 SVG在HTML页面 SVG ...

  • svg介绍及使用小技巧

    svg SVG 意为可缩放矢量图形(Scalable Vector Graphics)。SVG 使用 XML 格式...

  • SVG简单使用

    什么是SVG SVG 即可伸缩矢量图形 (Scalable Vector Graphics)。SVG 使用 XML...

  • 全屏组件

    使用方法 fullscreen.svg文件可放入 src/assets/icons/svg/fullscreen.svg

  • 完善页面样式

    使用SVG Symbol yarn add --dev svg-sprite-loaderyarn add --...

  • svg入门详解(理论篇)

    一、svg是什么? SVG 意为可缩放矢量图形(Scalable Vector Graphics)。SVG 是使用...

网友评论

      本文标题:svg 使用心得

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