Javascript D3.js饼图反向动画
正如标题所说。如何反转饼图中的动画路径(D3.js)。默认情况下,饼图以顺时针方向渲染动画。我该如何反转它 参见图片示例 JS在此:Javascript D3.js饼图反向动画,javascript,animation,d3.js,reverse,Javascript,Animation,D3.js,Reverse,正如标题所说。如何反转饼图中的动画路径(D3.js)。默认情况下,饼图以顺时针方向渲染动画。我该如何反转它 参见图片示例 JS在此: var pie = d3.layout.pie() .sort(null) .startAngle(1 * Math.PI) .endAngle(3 * Math.PI) .value(function (d) { return d.percentage; }); g.a
var pie = d3.layout.pie()
.sort(null)
.startAngle(1 * Math.PI)
.endAngle(3 * Math.PI)
.value(function (d) { return d.percentage; });
g.append("path")
.attr("d", arc)
.style("fill", function (d) { return d.data.color; })
.attr({
"fill": function (d) {
return d.data.color;
}
})
.transition()
.duration(1000)
.attrTween("d", function (d) {
var i = d3.interpolate(d.startAngle, d.endAngle);
return function (t) {
d.endAngle = i(t);
return arc(d);
}
});
只需将
endAngle
与startAngle
交换即可:
.transition()
.duration(1000)
.attrTween("d", function (d) {
var i = d3.interpolate(d.endAngle, d.startAngle);
return function (t) {
d.startAngle = i(t);
return arc(d);
}
});
检查代码段:
var数据集={
苹果:[534528791997,24374045],
};
可变宽度=460,
高度=300,
半径=数学最小值(宽度、高度)/2;
var color=d3.scale.category20();
var pie=d3.layout.pie()
.sort(空);
var arc=d3.svg.arc()
.内半径(半径-100)
.外层(半径-50);
var svg=d3.选择(“正文”).追加(“svg”)
.attr(“宽度”,宽度)
.attr(“高度”,高度)
.附加(“g”)
.attr(“变换”、“平移”(+width/2+)、“+height/2+”);
var path=svg.selectAll(“路径”)
.data(pie(dataset.apples))
.enter().append(“路径”)
.attr(“fill”,函数(d,i){返回颜色(i);})
.attr(“d”,弧)
.transition()
.持续时间(1000)
.attrTween(“d”,函数(d){
var i=d3.插值(d.端角,d.星形);
返回函数(t){
d、 startAngle=i(t);
返回弧(d);
}
});代码>