给定a D3js script,使用topojson生成SVG时,交互式功能很像我想要的。
鉴于我,在我这边,没有topojson而是 SVG文件,我希望在其上重复使用相同的交互功能。
我应该如何处理,以便我的D3js代码加载我的SVG文件,而不是从topojson生成一个?
我当然会提供严格编码的SVG文件,其中包含合适的ID和语法。
想法:我想我应该替换
d3.json("/mbostock/raw/4090846/us.json", function(error, us) {
// further SVG generator code here
});
通过加载和放置我的SVG文件生成SVG代码,但是如何处理?使用什么代码?
答案 0 :(得分:1)
您可以直接在HTML中包含SVG文件,无需在Javascript中加载它。例如:
<object id="mySVG" data="my.svg" type="image/svg+xml"></object>
唯一需要记住的是,您最终在文档中有两个DOM(主HTML和嵌入式SVG),CSS选择器不跨越DOM边界。也就是说,d3.select("#IDinSVG")
可能不起作用,但d3.select(d3.select("#mySVG").node().getDocumentElement()).select("#IDinSVG")
之类的内容应该是。