javascript - 如何根据内容设置SVG(Draw by D3.js)的高度?

标签 javascript svg d3.js

我正在使用 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

关于javascript - 如何根据内容设置SVG(Draw by D3.js)的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22006483/

相关文章:

css - 如何在jsplumb中设置连接线的不透明度?

javascript - 如何在Y轴上获得虚线以及如何在d3中的图形旁边显示值

javascript - D3js,时间轴标签的特定格式

javascript - 使用 JavaScript 创建 IFRAME

javascript - 在javascript中查找字符串中存在哪些子字符串的最快方法是什么?

image - 具有CMYK颜色的SVG图像-是否可以?

javascript - 如何漂亮的拓扑图

javascript - 如何在 Brackets 的项目文件树中查找文件

javascript - 未自动检测到细胞变化

html - 滚动时保持 SVG 对象静态