2013-01-02 233 views
2

我目前正在使用d3.js进行可视化工作。请看看here。 (这是一个Dropbox链接,您可能必须允许它加载。)SVG元素重叠问题

我创建了一个函数,其中每个重叠元素在地图上的点上盘旋时都会增加大小。

请尝试以下用例: 1.单击美国以放大该国家/地区。 2.拖放并平移到纽约,并将鼠标指针悬停在点上。

如果一切顺利,你应该看到一个嵌有多个同心圆的巨大圆圈。它们在特定的坐标中都是重叠的元素。

我面临的问题是,当SVG元素的大小增加时,其他城市的点会在同心圆上重叠。

我的问题是:如何制作圆形,我将鼠标悬停在SVG画布上,以便不会看到这样的点。

回答

3

您可以通过直接抓住了DOM节点,并将其放置到顶部做:

this.parentNode.appendChild(this); 

下面是一个例子:http://bl.ocks.org/1197731

+0

如果使用此方法生成的数据,您可能需要更新的元素使用数据函数的第二个参数将DOM元素绑定到特定的数据部分,否则当您下次更改数据时可能会出现意外的行为。 文档:https://github.com/mbostock/d3/wiki/Selections#data –

1

解决方案最终是在mouseover上附加SVG元素。这会将元素堆叠在SVG画布的最上方,并在鼠标移出上移除它们。目前没有SVG元素的z-index替代方案。