停止d3圈包装标签重叠

时间:2015-05-14 22:36:38

标签: javascript d3.js label zoom circle-pack

卡在重叠的标签上。举例说明:JSFIDDLE

  1. 点击文字标签“A组”。变焦过渡后, A组标签仍然与小圆圈的标签重叠。
  2. 点击其他地方缩小。
  3. 再次点击“A组”。这次标签不会保留,所以 没有重叠。所以它似乎在一次之后自我修复。
  4. 我想在第一次点击某些内容时不重叠。我该怎么做呢?我不想截断标签或重新定位标签。

    我一直在摆弄这一点,但到目前为止还没有运气。

    wait.Until(x => driver.FindElements(By.Xpath("//h3[@class='... ']")).Count > 0 || driver.FindElements(By.Xpath("//h2[@class='... ']")).Count > 0); 
    

    仅供参考,如果第一次点击是在中等圆圈上,也会发生这种情况。

    This post gets close,说它可以使用pack输出限制可见性,但没有说明如何实现它。

    所以基本上我正在尝试这样做:“如果放大到中等或小圆的水平,不要显示中等圆圈标签。”

    感谢。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我已经发现缩放功能的一个特定部分,如果在生成初始视图后立即应用于根,则可以解决此问题。将此代码添加到d3.json文件的末尾应该可以解决问题。仍在研究更好的解决方案。

init(root)
function init(d) {
  var transition = d3.transition()
  transition.selectAll("text")
    .each("start", function(d) {
      if (d.parent === focus) this.style.display = "inline";
    });
}