2017-10-04 26 views
1

我正在使用attr修改栏的大小和位置。 但是图表属性仅在图表呈现后才可用。所以我正在做功能修改 chart.on(“renderlet.somename”,函数(图){//修改});只有在调用renderlet函数后才显示DC条形图,而不是渲染。

我的问题是这看起来很奇怪,因为图表首先被渲染,然后修改被应用,并且它全部出现在页面上。

我希望图表应该只在应用修改后才可见。

回答

0

我开始写道你可以使用pretransition event,因为在转换开始之前,所有内容都被渲染/重绘之后会触发。

但是,您无法公开访问它(它应该是!),并且您无法从酒吧读取它,直到它们已经过渡。

所以,如你所说,你可以不使用CSS隐藏整个图表:

<div id="test" style="visibility: hidden"></div> 

然后在你renderlet开始表现出来:

chart.on('renderlet', function(chart) { 
    d3.select('div#test').style('visibility', 'visible'); 

为了消除暂停,您还可以在初始化时禁用此图表的转换;在renderlet

chart 
    .transitionDuration(0) 

,并重新启用它们:

chart 
    .on('renderlet', function(chart) { 
    d3.select('div#test').style('visibility', 'visible'); 
    chart.transitionDuration(750); // default value 

这里有一个演示,用小提琴证明误差条(这也需要线条的宽度):http://jsfiddle.net/gordonwoodhull/cw86goxy/32/

相关问题