javascript - d3 图表调整大小无法按预期工作

标签 javascript d3.js svg

我正在尝试制作响应式图表。

这是我的代码:

var width = (parseInt(d3.select('#'+chartID).style('width'), 10));

...

d3.select(window).on('resize', function() {
    // Recalculate
    width = parseInt(d3.select('#'+chartID).style('width'), 10);
    d3.select(svg.node().parentNode).style('width', (width) + 'px');
});

它不会为 SVG 设置样式属性。我错过了什么?

最佳答案

抱歉“回答”,我没有评论积分。您阅读后我可以删除此内容:

检查您的“svg”是否是组(g)元素。也许是这样的:

var svg = d3.select('#chart').append('svg')
    .style('width', (width + margin.left + margin.right) + 'px')
    .append('g')
    .attr('transform', 'translate(' + [margin.left, margin.top] + ')');

在这种情况下,您需要parentNode来获取实际的svg,即您的组的父级。

但是如果你的“svg”不是 g,请删除parentNode。

关于javascript - d3 图表调整大小无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35510833/

相关文章:

javascript - 将鼠标事件分配给 svg :text in d3. js

javascript - d3js 缩放圆圈组

ios - 如何让 VoiceOver 确认其中包含 SVG 的链接?

wpf - WebBrowser-Control(WPF 或 Windows-Forms)无法显示网页中包含的 .SVG 文件

javascript - 如何处理 knockout.js 中的本地化?

javascript - 如何存储和调用变量?

javascript - 数据表 - jQuery/Javascript 下拉框包含空选择器

javascript - 使用 D3 将 SVG 文本元素 id 与数据 id 进行匹配

javascript - D3JS折线图倒置问题

javascript - 如何使用最新的d3加载json文件?