将Snap.animation传递给Element.animate时出现Snap.svg错误

时间:2014-02-05 20:19:52

标签: javascript svg svg-animate snap.svg

This Fiddle显示了我面临的错误。它真的是一个错误,还是我做错了什么?

在小提琴中,将两个圆圈悬停,白色圆圈正确动画,黑色圆圈消失,无限循环开始在控制台中抛出错误。

var animateCircleIn = Snap.animation({
    r: 15
}, 400, mina.backout);

var animateCircleOut = Snap.animation({
    r: 10
}, 400, mina.easein);

var paper = new Snap("svg");

// Bigger black circle that does not work, see the console
var c2 = paper.circle(60, 60, 30);
c2.hover(function () {
    console.log(this.animate);
    c2.animate(animateCircleIn); // Infinite loop of errors
});

1 个答案:

答案 0 :(得分:3)

我认为它是你发现的一个错误,在源代码中它看起来像'easing.dur'而不是'attr.dur',你可以通过在你的对象中设置它来证明这一点......

animateCircleIn.easing.dur = 400;
animateCircleOut.easing.dur = 400;

它会起作用。

在此fiddle中突出显示有效。所以我认为你必须像上面那样做一个奇怪的解决方法,或者改变snap.svg.js来匹配。 (我会看看我是否可以获得github的更新)

我认为在snap.svg.js中,ms = easing.dur;应该是ms = attrs.dur;除非我错过了关于它如何设置的内容。

(git pull请求已完成,我认为这已在0.4.1中修复)