Javascript 如何使流图具有响应性(d3.js)?

Javascript 如何使流图具有响应性(d3.js)?,javascript,graph,d3.js,responsive-design,stream-graph,Javascript,Graph,D3.js,Responsive Design,Stream Graph,我正在为我的公司使用d3.js制作一个流图,我想知道如何使其响应。我的代码与此示例没有太大区别: 我一直在玩设置viewBox=“0 0高度宽度”和preserveSpectratio=“xMinYMid meet”,但都没有用 有什么建议吗 所以,这个问题的解决方案是: 具体而言,该代码: var chart = $("#chart"), aspect = chart.width() / chart.height(), container = chart.parent(); $(wind

我正在为我的公司使用d3.js制作一个流图,我想知道如何使其响应。我的代码与此示例没有太大区别:

我一直在玩设置
viewBox=“0 0高度宽度”
preserveSpectratio=“xMinYMid meet”
,但都没有用


有什么建议吗

所以,这个问题的解决方案是:

具体而言,该代码:

var chart = $("#chart"),
aspect = chart.width() / chart.height(),
container = chart.parent();

$(window).on("resize", function() {
var targetWidth = container.width();
chart.attr("width", targetWidth);
chart.attr("height", Math.round(targetWidth / aspect));
}).trigger("resize");

感谢所有帮助过我的人

你所说的响应是什么意思?你能创建一个JSFIDLE或发布你正在使用的代码吗?我想她指的是在调整容器大小时缩放SVG。你看到了吗?@HenrikHelmers,是的,这正是我的意思。@THK我的意思是我应该能够调整窗口大小,SVG应该缩放并保持比例。通常,我会在百分比上下文中使用svg。所以,d3让我经历了一个循环,因为高度和宽度是在数学中使用的。我没有做小提琴,因为那是多余的。我的和那个例子只有一个细微的区别。请注意,该示例无法很好地调整大小。