我想在某些事件后放大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
});当然,我可以在点击当前图表后删除并创建新的图表,但这不是一种方法,因为我需要在其他点击后返回原始大小。
发布于 2013-04-11 20:02:04
你只需要像在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"
}
);
});当然,数据和选项应该被分解并放在全局范围内以便于使用。
https://stackoverflow.com/questions/9839909
复制相似问题