将动画选项添加到raphaeljs饼图

时间:2013-03-14 02:57:23

标签: svg raphael graphael

我想用raphaeljs插件绘制动画饼图; 我在g.raphaeljs库中找到了一个饼图功能(Paper.piechart),这是他们的相关演示

http://g.raphaeljs.com/piechart2.html

但我不知道如何在不重新渲染情节的情况下为此图表设置动画(当执行某个事件时) 喜欢这个演示:

http://raphaeljs.com/growing-pie.html 画 换句话说,我想将第二个演示的动画选项添加到第一个演示。 任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

这是拉斐尔饼图的工作演示,该图表在创作时会增长并且对鼠标悬停具有切片反弹效果:

<div id="pie"></div>
<script>
 var paper = Raphael("pie", 400, 200);
 var pie = paper.piechart(
   100, // pie center x coordinate
   100, // pie center y coordinate
   90,  // pie radius
    [18.373, 18.686, 2.867, 23.991, 9.592, 0.213], // values
    {
    legend: ["Windows/Windows Live", "Server/Tools", "Online Services", "Business", "Entertainment/Devices", "Unallocated/Other"]
    }
  );

//animation - grow pie      
pie.each(function(){
    this.sector.scale(0, 0, this.cx, this.cy);
    this.sector.animate({ transform: "s1 1 " + this.cx + " " + this.cy }, 1000, "bounce");
});

// Bounce pie slice
pie.hover(function () {
  this.sector.stop();
  this.sector.animate({ transform: "s1.1, 1.1 " + this.cx + " " + this.cy }, 500, "bounce");
  this.label[0].attr({ r: 7.5 });
  this.label[1].attr({ "font-weight": 800 });
},

function () {
  this.sector.animate({ transform: "s1 1 " + this.cx + " " + this.cy }, 500, "bounce");
  this.label[0].animate({ r: 5 }, 500, "bounce");
  this.label[1].attr({ "font-weight": 400 });

})

</script>