美文网首页
svg元素的基础操作

svg元素的基础操作

作者: 进击的前端 | 来源:发表于2016-08-08 23:49 被阅读823次

之前普通dom节点用jquery来写,svg之类的节点操作用d3.js来写,然后现在尝试写一个小组件,就想写个不依赖任何库的版本。

之前用d3.js来写可视化组件,有着库依赖的问题,这次想自己把库的依赖去掉,用原生态javascript写。

然后第一件事情我就懵逼了,用jquery的$("<svg></svg> )生成也是一样。

var svg = document.createElement("svg");
document.querySelector("body").appendChild(svg);

然后出来的是一个普通标签名叫svg的标签,没有svg的任何渲染

没有渲染效果的svg

而本来应该是下图的效果的。


具有正常渲染的svg标签

然后就顺便普及了svg的知识,svg虽然和dom元素很像,但是实际上是xml,它比html更加严格,有着自己的命名空间,如果你在html里面直接写,那么会被加上命名空间解析,如果你想要用js来创建,那么你就得自己来写。

var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");

我写的是一个词云插件,我的算法是根据一个text来判断碰撞与否,所以我要知道两个text的位置和高度和宽度。
对于普通的元素,可以通过jquery.css("width")来实现,但是这个对于svg元素,jquery也再一次失效。而这个时候,getBoundingClientRect(),就起效了。

var el   = document.getElementById("yourElement"); // or other selector like querySelector()
var rect = el.getBoundingClientRect(); // get the bounding rectangle
console.log( rect.width );
console.log( rect.height);

相关文章

  • svg元素的基础操作

    之前普通dom节点用jquery来写,svg之类的节点操作用d3.js来写,然后现在尝试写一个小组件,就想写个不依...

  • SVG基础之内部元素

    说明:SVG概念,元素样式设置等请查看SVG基础 目录 图形元素 文字元素 特殊元素 滤镜元素【需完善】 渐变元素...

  • SVG基础

    SVG基础 概念 作用于SVG标签的属性 作用于SVG内部元素的样式 SVG内部元素 一、概念 该部分主要说明SV...

  • svg基础--基本语法与标签

    svg系列–基础 这里会总结svg的基础知识和一些经典的案例。 svg简介 如何在网页中引用svg元素 一些公共属...

  • SVG 简介

    基础 学习SVG之前需要掌握: HTML 与 XMLSVG参考手册:SVG元素列表 SVG 指可伸缩矢量图形 (S...

  • svg形状

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

  • SVG操作笔记

    Js操作svg笔记 js获取svg里面某个标签元素的位置信息 event.target.getBBox();返回该...

  • 推荐SVG教程系列

    1.基础了解SVG 基础传送门 2.进阶-高级(多种骚操作) 进阶-高级传送门 3.SVG文档 SVG文档传送门 ...

  • HTML5|SVG形状

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

  • svg入门详解(实例篇)

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

网友评论

      本文标题:svg元素的基础操作

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