【发布时间】:2014-01-11 20:42:23
【问题描述】:
我创建了一个 NVD3 multiBarChart 并将它放置在一个 jQuery 可调整大小的容器中。调整图表大小时,每次渲染都会产生与首次绘制图表时相同的延迟:从左到右交错的条形延迟绘制。第一次绘制图表时这看起来很酷,但在调整图表大小时会很麻烦。我已经尝试过 nv.d3.css,将每次延迟减少到 0ms 无济于事。尚未检查 NVD3 JS,希望不需要。
小提琴: http://jsfiddle.net/a5Fnj/10/
var container = $("#mycontainer");
$(container[0]).resizable();
var svg = d3.select(container[0]).append("svg");
nv.addGraph(function () {
var chart = nv.models.multiBarChart();
chart.xAxis.tickFormat(d3.format(',f'));
chart.yAxis.tickFormat(d3.format(',.1f'));
d3.select(container[0]).select("svg")
.datum(exampleData())
.transition().duration(0).call(chart);
nv.utils.windowResize(chart.update);
this.stackedbar = chart;
});
function exampleData() {
return stream_layers(3, 10 + Math.random() * 100, .1).map(function (data, i) {
return {
key: 'Stream' + i,
values: data
};
});
}
【问题讨论】:
标签: d3.js resize delay updates nvd3.js