仅在调用renderlet函数后显示DC条形图,而不是在渲染时。

时间:2017-10-04 10:17:51

标签: dc.js

我正在使用attr修改条形大小和位置。 但是,图表属性仅在图表呈现后才可用。

所以我正在对功能进行修改 chart.on(“renderlet.somename”,function(chart){// modification});

我的问题是看起来很奇怪,因为首先渲染图表然后应用修改并且它们都显示在页面上。

我希望图表只有在应用修改后才能显示。

1 个答案:

答案 0 :(得分:0)

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

但你是正确的,条形宽度不可公开访问(应该是!),并且在它们转换之前你无法从条形图中读取它。

因此,正如您所建议的那样,您可以使用CSS隐藏整个图表:

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

然后在您的renderlet开头显示它:

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

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

chart
  .transitionDuration(0)

并在您的renderlet中重新启用它们:

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

这是一个演示,使用小提示演示误差条(也需要条宽):http://jsfiddle.net/gordonwoodhull/cw86goxy/32/