我在尝试构建基于jquery的d3.js条形图插件时遇到问题。
我试图让酒吧动画 - 但没有取得任何成功。
http://jsfiddle.net/NYEaX/161/
这是动画条功能
animateBars: function(data){
var svg = d3.select(methods.el["selector"] + " .barchart");
var bars = svg.selectAll(".bar")
.data(data);
bars
.enter().append("rect")
.attr("class", "bar")
.attr("x", function(d) { return methods.x(d.letter); })
.attr("width", methods.x.rangeBand())
.attr("y", function(d) { return methods.y(d.frequency); })
.attr("height", function(d) { return methods.height - methods.y(d.frequency); })
.transition()
.duration(300)
bars
.transition()
.duration(300)
bars.exit()
.transition()
.duration(300)
}
答案 0 :(得分:0)
我修复了jsfiddle中新条形的过渡。我希望它揭示了转换的功能:
http://jsfiddle.net/NYEaX/893/
工作原理:设置初始高度和y值后,会添加到结束高度和y值的过渡。
bars
.enter().append("rect")
.attr("class", "bar")
.attr("x", function(d) { return methods.x(d.letter); })
.attr("width", methods.x.rangeBand())
.attr("y", function(d) { return methods.y(0); })
.attr("height", function(d) { return methods.height - methods.y(0); })
.transition().duration(1000)
.attr("y", function(d) { return methods.y(d.frequency); })
.attr("height", function(d) { return methods.height - methods.y(d.frequency); });