【发布时间】:2014-02-05 15:24:20
【问题描述】:
我在单独的角度指令中有 2 个图表
<chart1 ng-model="data" style="display:block;" id="plot1" class="ng-pristine ng-valid">
<svg width="960" height="500" style="right: 0px;">Some data</svg>
</chart1>
<chart2 ng-model="data" style="display:block;" id="plot1" class="ng-pristine ng-valid">
<svg width="960" height="500" style="right: 0px;">Some data</svg>
</chart2>
chart1 生成 svg:
var svg = d3.select("#plot1").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom).style({'right': '0'});
图表 2:
var svg = d3.select("#plot2").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom).style({'right': '0'});
出于某种原因,这两个图彼此重叠,在 html 中我可以看到 svg 的样式为 position: absolute。如果我删除这种样式,一切正常,但我以这种方式设置样式可能是有原因的......
我遇到了这个 guid:http://www.d3noob.org/2013/07/arranging-more-than-one-d3js-graph-on.html
但它没有帮助。
我该如何解决这个问题?
【问题讨论】:
-
如果您需要
position: absolute,那么您需要明确设置定位,例如left: 0px用于第一张图,right: 0px用于第二张。 -
但实际上,除非您有使用绝对定位的特殊原因,否则没有必要。它不会改变图表内部内容的绘制方式。
标签: javascript css d3.js