首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SVG.js不将svg拉进容器(聚合物)

SVG.js不将svg拉进容器(聚合物)
EN

Stack Overflow用户
提问于 2019-06-02 02:05:50
回答 1查看 115关注 0票数 0

我使用NPM安装了svg.js,并通过import "svg.js";将模块导入自定义元素文件,

代码语言:javascript
复制
import "svg.js";

class MyView2 extends PolymerElement {
  static get template() {
    return html`

      <div id="drawing"></div>

    `;
  }

  connectedCallback() {
    super.ready();
    var draw = SVG("drawing").size(300, 300);
    var rect = draw.rect(100, 100).attr({ fill: "#f06" });
  }
}

这应该会在div中插入一个SVG,但是它会在控制台中抛出这个错误:

代码语言:javascript
复制
svg.js:3060 Uncaught TypeError: Cannot read property 'nodeName' of null
    at new create (svg.js:3060)
    at globalRef.SVG (svg.js:33)
    at HTMLElement.connectedCallback (my-view2.js:42)
    at my-view2.js:50

我对聚合物相当陌生,所以不确定我是不是遗漏了一些显而易见的东西。

EN

回答 1

Stack Overflow用户

发布于 2019-06-07 12:09:47

您的组件有一个影子Dom,所以SVG找不到它。请试试这个:

代码语言:javascript
复制
let node = this.shadowRoot.querySelector('drawing');
let draw = SVG.adopt(node);
let rect = draw.rect(100, 100).attr({ fill: "#f06" });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56411725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档