【发布时间】:2018-04-07 06:45:04
【问题描述】:
目前我已经使用 svg.js 库实现了一个 svg。圆圈“draw_face”正在画布 id 上绘制,它是 SVG 而不是 div。通过调用 .draggable(),可以将形状拖动到“画布”上的任何位置。但是我也想将它拖到“保存” div 中,以便我可以将该 div 中的所有 svg 元素保存为 .xml 或 .svg 文件。通过添加 ForeignObject,圆圈位于 div 的顶部,但 div 无法识别圆圈在 div 内。当我尝试将结果保存在 div 中且圆圈位于其顶部时,会保存一个空白页面。如何让 div 识别出里面有圆圈,这样我就可以保存文件了。
#canvas {
overflow: hidden;
background-color: #cccccc;
}
#save{
background-color: #ff0000;
width: 550px;
height: 490px;
}
<svg id = "canvas" width="100%" height="100%" viewBox="0 0 400 400" z-index="100">
<svg id = "droparea" width="100%" height="100%" viewBox="0 0 1100 1100" z-index="100">
<foreignObject x="520" y="20" width="550" height="485">
<div id = "save">
</div>
</foreignObject>
</svg>
</svg>
var canvas = SVG('canvas');
function face_draw() {
var face = canvas.circle(30).attr({ fill: '#f4e3d7', stroke: '#000000', 'stroke-width':0.15}).move(15,15);
face.draggable();
}
face_draw();
【问题讨论】:
-
很难说出你真正想要达到的目标:/你需要提供更多的上下文。在您的小代码中,您在 svg 空间内有一个 div - 这是行不通的。用 svg 容器元素替换 div -
-
好的,我在代码中添加了更多上下文,请随意查看。谢谢
-
好的,我为你的问题做了你的工作;)这是你的情况吗:jsfiddle.net/Lmu56awz/3809(还没有答案)你能澄清你到底想要实现什么 - 能够拖动“圆圈”从蓝色 div 到 svg 空间?
标签: javascript html svg