2

この 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
});
4

1 に答える 1

3

あなたが発見したバグだと思います。ソースでは、「attr.dur」ではなく「easing.dur」を見ているように見えます。オブジェクトにこれを設定することでこれを証明できます...

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

そしてそれはうまくいくでしょう。

ここでフィドルで強調表示され、機能しています。したがって、上記のような奇妙な回避策を実行するか、snap.svg.js ソースを一致するように変更する必要があると思います。(github の更新を取得できるかどうかを確認します)

私はsnap.svg.jsで、ms = easing.dur;だと思います。ms = attrs.dur; である必要があります。その設定方法について何かが欠けていない限り。

(git pull request が行われました。これは 0.4.1 で修正されていると思います)

于 2014-02-06T10:21:26.610 に答える