0
爲了能夠平滑地在條形圖中過渡條形圖,我需要在調用transition()
之前設置高度。如何獲取當前元素高度?
當圖表首先渲染條從圖表底部所需動畫了起來:
chart.svg.selectAll('.bar')
.attr('y', chart.options.height)
.attr('x', function (d) {
return chart.xScale(d.title);
})
.attr('width', chart.xScale.rangeBand())
.attr('height', function() {
return 0;
})
.transition()
.attr('y', function (d) {
return chart.yScale(d.score);
})
.attr('height', function (d) {
return chart.options.height - chart.yScale(d.score);
});
然而,當我改變數據我不想設定高度回0
。相反,我需要將高度設置爲矩形的當前高度。我如何從attr
函數訪問這個函數?
.attr('height', function() {
return 0; // how do I get the current height
})
當我登錄this
我可以訪問DOM元素,但不知道從哪裏裏去。我試過d3.select(this).attr('height')
,但它總是返回null。
如果高度已設置,則不需要重新設置。使用新數據,只需添加'.transition()。attr(「height」,...)'。 – 2014-11-24 18:51:18