Javascript 在Raphael中,如何将停止时的动画重置为其初始状态?

Javascript 在Raphael中,如何将停止时的动画重置为其初始状态?,javascript,animation,raphael,Javascript,Animation,Raphael,我想做的是当我停止动画时 重置动画对象的初始状态。我想这样做是因为当我现在停止元素。停止[anim]时,它冻结在当前点,比如说半转换,当我再次播放它时,动画从这个地方开始重复,而不是从一开始 这是我的动画Raphael.animation{opacity:0},500,.repeatInfinity 三周前我在拉斐尔新闻组问过这个问题,但没有得到任何回答 谢谢, bozhidarc我并不是说它是最优雅的,但在过去,我只是通过在创建元素时向元素添加几个额外属性来完成类似的操作。在本例中,我只需添加

我想做的是当我停止动画时 重置动画对象的初始状态。我想这样做是因为当我现在停止元素。停止[anim]时,它冻结在当前点,比如说半转换,当我再次播放它时,动画从这个地方开始重复,而不是从一开始

这是我的动画Raphael.animation{opacity:0},500,.repeatInfinity

三周前我在拉斐尔新闻组问过这个问题,但没有得到任何回答

谢谢,
bozhidarc

我并不是说它是最优雅的,但在过去,我只是通过在创建元素时向元素添加几个额外属性来完成类似的操作。在本例中,我只需添加一个baseAttrs属性,它保存设置的原始对象:

    var paper = Raphael('canvas', 500, 500);

    var circle = paper.circle(320, 240, 60);
    circle.baseAttrs = {fill:'yellow'}; // add to the elem
    circle.attr(circle.baseAttrs);

    circle.animate({fill: "blue"}, 1000,
                   function(){
                       this.attr(this.baseAttrs);
                   });
在上面的示例中,当动画完成时,来自动画的回调将圆的属性设置为元素的baseAttrsvalue。baseAttrs将始终与圆圈一起保持,无论发生什么情况