仅在调用 renderlet 函数后显示 DC 条形图,而不是在渲染时显示。
Showing DC bar chart only after on renderlet function is called, and not on render.
我正在使用 attr 修改栏的大小和位置。
但是,图表属性仅在图表呈现后可用。
所以我正在对功能进行修改
chart.on("renderlet.somename",函数(图表){//修改});
我的问题是这看起来很奇怪,因为首先呈现图表,然后应用修改,然后它全部显示在页面上。
我希望图表仅在应用修改后可见。
我开始写道,您可以使用 pretransition
event,因为这会在一切 rendered/redrawn、转换开始之前触发。
但是您是正确的,条形宽度不可公开访问(它应该是!)并且在它们转换之前您无法从条形中读取它。
因此,正如您所建议的,您可以使用 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
这是一个演示,使用 fiddle 演示误差条(也需要条宽):http://jsfiddle.net/gordonwoodhull/cw86goxy/32/
我正在使用 attr 修改栏的大小和位置。 但是,图表属性仅在图表呈现后可用。
所以我正在对功能进行修改 chart.on("renderlet.somename",函数(图表){//修改});
我的问题是这看起来很奇怪,因为首先呈现图表,然后应用修改,然后它全部显示在页面上。
我希望图表仅在应用修改后可见。
我开始写道,您可以使用 pretransition
event,因为这会在一切 rendered/redrawn、转换开始之前触发。
但是您是正确的,条形宽度不可公开访问(它应该是!)并且在它们转换之前您无法从条形中读取它。
因此,正如您所建议的,您可以使用 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
这是一个演示,使用 fiddle 演示误差条(也需要条宽):http://jsfiddle.net/gordonwoodhull/cw86goxy/32/