我现在想知道如何重新使用加载的SVG文件,而不是每次需要时都加载它。
Snap.load('app/pages/map/desk.svg', function(svg) {
desk = svg;
});
然而,当我附加这个桌面变量时,它只能在第一次工作,我发现我需要克隆svg才能重新使用它。 (reusing snap.svg loaded svg into different elements)
不幸的是svg.clone()不存在,我不能做类似svg.select('whatever')的东西.clone()因为我加载的svg是根元素。
我只想要的是desk = svg.clone();
有谁知道我怎么能做到这一点?
答案 0 :(得分:0)
我在svg周围添加了一个<defs>
元素,然后我选择了嵌套的svg然后,每次我附加svg时,我都会在它上面调用clone。
我的.svg就是这样的:
<svg>...</svg>
到此:
<defs><svg>...</svg></defs>
我的代码现在看起来像这样:
// Load the .svg
Snap.load('app/pages/map/desk.svg', function(svg) {
desk = svg.select('svg');
});
// Append it somewhere
group.append(desk.clone());
感谢您的帮助@Ian