2016-02-19 53 views
0

我正在嘗試製作響應式圖表。d3圖表調整大小不能按預期工作

這是我的代碼:

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。我錯過了什麼?

回答

1

對不起「回答」,我沒有評論的要點。我可以在閱讀後刪除它:

檢查您的「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。

+0

你的回答很有幫助,謝謝 – FrontEndist