使用 svg.js 库包装现有的 SVG 元素
Wrap existing SVG elements using the svg.js library
如何将现有的 <svg>
元素包装在 svg.js
中?
例如:
<svg>
<circle r="10" cx="10" cy="10" fill="red"></circle>
</svg>
我知道这可以很容易地用 svg.js 构建,但我以它为例来回答我的问题。
var existingSvg = Svg.<some-method>(document.querySelector("svg"));
existingSvg.children(); // circle
我该怎么做?
我尝试使用 SVG('<id-ofsvg-element>')
,但 children()
returns 是一个空数组。
有一个 plugin called svg.absorb.js 可以让您导入现有的 SVG。要使用它,请执行
draw.absorb(element)
老问题新答案:
在 v2 中,svg.js 可以通过简单地调用 SVG.get('id')
来获取 svg 的其他实例,然后 return 这个 svg
的实例
// 编辑:为确保所有方法都能正常工作,当您的文档中还没有其他 SVG 时,您应该调用 SVG.prepare(element)
。我认为这是一个应该修复的错误
// EDIT2:甚至应该可以使用 SVG('id') 来获取根实例。这也会使对 SVG.prepare() 的调用过时
如何将现有的 <svg>
元素包装在 svg.js
中?
例如:
<svg>
<circle r="10" cx="10" cy="10" fill="red"></circle>
</svg>
我知道这可以很容易地用 svg.js 构建,但我以它为例来回答我的问题。
var existingSvg = Svg.<some-method>(document.querySelector("svg"));
existingSvg.children(); // circle
我该怎么做?
我尝试使用 SVG('<id-ofsvg-element>')
,但 children()
returns 是一个空数组。
有一个 plugin called svg.absorb.js 可以让您导入现有的 SVG。要使用它,请执行
draw.absorb(element)
老问题新答案:
在 v2 中,svg.js 可以通过简单地调用 SVG.get('id')
来获取 svg 的其他实例,然后 return 这个 svg
// 编辑:为确保所有方法都能正常工作,当您的文档中还没有其他 SVG 时,您应该调用 SVG.prepare(element)
。我认为这是一个应该修复的错误
// EDIT2:甚至应该可以使用 SVG('id') 来获取根实例。这也会使对 SVG.prepare() 的调用过时