我正在使用D3.js绘制一棵树,与此图表相同:
http://bl.ocks.org/mbostock/7809166
但是高度和宽度是固定的,我想通过内容自动调整高度。

我的代码:

var svg = d3.select("#feature_tree").append("svg")
  .attr("width", width + margin.right + margin.left)
  .append("g")
  .attr("transform", "translate(" + margin.left + "," + margin.top + ")");

如果我没有定义高度,则无法完全显示树,除非我扩大浏览器,否则可以显示丢失的树节点。

如果我定义高度,例如高度= 2400像素;如果内容很短。会有很大的空白。

最佳答案

您可以测量内容的高度并相应地调整SVG元素:

var svgEl = document.getElementById("my-svg"),
    bb = svgEl.getBBox();
svgEl.style.height = bb.y + bb.height;
svgEl.style.width = bb.x + bb.width;

这里的简单演示:http://codepen.io/anon/pen/gpwbKd

07-24 17:49
查看更多