我有一个圆圈。我想创建一个函数,将它从1缩放到0.8,然后回到1.我目前的工作方式是,但是当我连续多次调用它时,动画会发生冲突,并且圆圈会以不同的方式结束(小)规模。Snap.svg动画运行多次以不同的值结束
在做所有这些缩放的东西时,我希望圆圈保持在它的位置。另外,我希望缩放能够在圆的中心使用锚点完成。目前情况如此。
看看this fiddle。
由于上述原因,我得到的圆的当前变换:
var trans = elem.attr("transform");
重置其规模:
trans.totalMatrix.scale(1);
,并将其应用:
elem.attr({transform: trans});
然后,我animate()
达到所需的比例(在这种情况下为0.8
),如下所示:
transform: "s" + scale + "," + scale + trans
和完成时,我animate()
回原来的带刻度1
变换:
transform: trans
动画运行几次后,圈内有一个小规模的结束。 为什么?
编辑:
延迟动画之间比所述动画本身的长度小有意。我的问题是如何使动画工作尽管那。
我知道我正在重新启动动画完成之前。我在问,尽管如此,我还能如何运作。无论什么时候播放,我都希望它总是以'1'的比例结束。 –
如果你拿我的代码,并将'setInterval'的值改回200,你会看到它的比例为1。 –
嗯,没有注意到。然而,我现场使用的SVG不能被修改,所以我必须在''上进行变换_must_,这样我才能使它以这种方式工作,并且最终以'1'结尾? I.E.我如何在保留初始转换的同时使其工作? –