我希望在某些事件后放大gRaphael pie chart,例如点击。但是gRaphael饼图是在窗口加载后创建的,具有静态宽度和高度。是否可以实时动态重绘?
我的代码:
var myRadius;
myRadius = 200;
var myChart = Raphael("myChartDiv"),
myChartPie = myChart.piechart(
myRadius, // cx
myRadius, // cy
myRadius, //Radius
[70, 30], //Data
{
colors: ["#eb5e57", "#ebad50"],
stroke: "#f1eeea"
}
);
$('#myButton').click(function(){
myRadius = 500;
myChart.clear(); //Clear current canvas
// Do something to insert myChart with new myRadius
});
UPD 当然我可以在点击当前图表后删除并创建新的,但这不是一种方式,因为我需要在其他点击后返回原始大小。
答案 0 :(得分:1)
你只需要清除&在this fiddle上重绘你的馅饼。
var myRadius;
myRadius = 200;
var myChart = Raphael("myChartDiv"),
myChartPie = myChart.piechart(
myRadius, // cx
myRadius, // cy
myRadius, //Radius
[70, 30], //Data
{
colors: ["#eb5e57", "#ebad50"],
stroke: "#f1eeea"
}
);
$('#myButton').click(function(){
if(myRadius == 200)
myRadius = 500;
else
myRadius = 200;
myChart.clear();
myChartPie = myChart.piechart(
myRadius, // cx
myRadius, // cy
myRadius, //Radius
[70, 30], //Data
{
colors: ["#eb5e57", "#ebad50"],
stroke: "#f1eeea"
}
);
});
当然,数据和选项应该分解并放在全球可用性范围内。