【发布时间】:2015-10-02 02:48:49
【问题描述】:
我正在尝试实现一个响应式 d3 气泡图,在调整页面大小时更新其容器 svg(及其包含的节点)(有点像这样显示:http://jsfiddle.net/63K4n/)
但是,除了将节点缩小到适合屏幕的大小之外,我还想增加容器的高度,因为宽度正在减小,以便为节点在不缩小的情况下落入所需的额外空间。
我尝试将小提琴的最后几行更新为此...
chart.attr("width", targetWidth);
chart.attr("height", Math.round(921600/targetWidth)); //was targetWidth/aspectRatio
(其中 921,600 只是直径 [960] 的平方 - 即所需的总空间)
当然,尽管这正确地增加了容器的高度,但节点并没有利用新空间——这就是我正在努力弄清楚的——如何改变气泡图的形状以适应新空间(如果可能的话!)
如果无法使用标准气泡图,我也很乐意尝试静态力布局(例如http://bl.ocks.org/mbostock/1667139)结合可调整大小的示例,例如http://bl.ocks.org/mbostock/3355967。再次,问题是找到一种方法将节点重塑到新容器的范围内,所以我猜我必须调整碰撞检测以解决 svg 容器边界。随着这一切的发生,我很确定在您等待强制布局进入我可以更新页面的内容时,移动设备上会有相当大的延迟。
抱歉,如果这有点含糊不清,但我真的只是希望有人对解决问题的适当方法提出一般性建议。非常感谢您的任何想法!
【问题讨论】:
标签: d3.js