【发布时间】:2014-03-10 17:38:58
【问题描述】:
我使用 D3 在 SVG 上绘图。我想要的是将 DOM 元素或 HTML 附加到 D3,例如:
task.append(function(model){
//here return html or dom
};
文档说这是可能的,但不幸的是我找不到任何示例或自己找到了如何执行此操作。
【问题讨论】:
-
需要更清楚!您想将 HTML 元素添加到您的画布吗?
task和model是什么?你不应该考虑删除svg标签吗? -
是的,我需要在画布上添加一些 HTML。任务是 d3 选择。
-
为了更清楚,我需要使用它的 append 方法将 HTML 附加到 d3 选择中。 github.com/mbostock/d3/wiki/Selections#wiki-append
-
如果你想在画布上绘制 DOM 元素,那么here's the link 会告诉你怎么做。但是,如果您希望将 HTML 元素 附加 到画布,那么我恐怕要说that can't be done。
-
您在使用
<canvas>或<svg>作为您的图表吗?大多数 d3 使用<svg>,恐怕@srvikram13 在这种情况下会让你感到困惑。要在 SVG 中添加 HTML 元素,您必须首先添加<foreignObject>tag,然后在其中添加 HTML 元素。但是,请注意浏览器支持有些错误。根据您所做的事情,您可能会考虑在 SVG 之上绘制 HTML 元素,而不是它的子元素。查找工具提示示例以了解如何定位它。
标签: javascript html svg d3.js