在SVG.js中绘制自定义SVG而不提供单独的SVG元素

时间:2017-12-20 00:58:29

标签: svg.js

我有一个svg文件,我正在通过XHR加载

<svg>
  <circle cx="50" cy="50" r="50"/>
</svg>

我通过

成功地将圆圈绘制到绘图上
draw.svg(circle);

其中circle是包含svg标记的字符串。圆圈出现在图形上,但是.svg方法不是获取与initializer等其他元素一起返回的rect对象,而是返回一个create对象,其节点只是绘图元素,而不是圆形本身。这并不理想,因为我还需要通过鼠标交互来拖动,缩放和旋转圆圈。

为什么这是draw.svg的行为?

1 个答案:

答案 0 :(得分:1)

当您使用svg导入内容时,svg内容(不管是什么)将被添加到您调用svg()的节点上。想象一下,您不会导入单个元素,而是一次导入多个元素。导入函数应该返回什么?一套? 使svg()始终返回节点本身更简洁。 当您只使用svg()添加一个元素时,您仍然可以使用svg(svgstring).last()来为您提供感兴趣的元素。

在未发行的3.0中,可以这样做:

SVG(svgstring).addTo(draw)

它直接返回导入的元素,因为您使用SVG构造函数创建了一个新实例。但是,这不适用于文档片段(至少不是atm。我们可能会实现它)