Чтобы я мог плавно переходить на бары на гистограмме, мне нужно установить высоту, прежде чем я позвоню 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 ", ...)'. –