首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Snap Snap.animation()函数

Snap Snap.animation()函数
EN

Stack Overflow用户
提问于 2016-07-08 04:26:47
回答 1查看 443关注 0票数 0

我正在尝试创建一个具有许多变化阶段的动画,Snap.animation()允许这样做还是必须使用css3动画?觉得医生们还缺了点什么

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-12 05:55:16

最好的方法是创建一个排序函数或插件,它轮流使用您的动画,而不需要对每个动画进行编码。例如,您可以将它们作为数组传递进来。下面是我以前做过的一些代码。

在数组中,传递给它一个对象。

艾尔:要行动的元素

动画:要执行的动画(如包含要动画的属性的对象)

杜尔:持续时间

放松:放松

startFunc:为每个“框架”运行的可选回调。

注意,如果您想要延迟之类的东西,您可能会包括一些空白帧(将属性动画为相同的值,或者一个不存在或不重要的属性)。

代码语言:javascript
复制
function nextFrame ( frameArray,  whichFrame ) {
    if( whichFrame >= frameArray.length ) { return }

    if( typeof frameArray[ whichFrame ].startFunc === 'function' ) { 
      frameArray[ whichFrame ].startFunc.call(frameArray[ whichFrame ].el) 
    };

    frameArray[ whichFrame ].el.animate(    frameArray[ whichFrame ].animation, 
                    frameArray[ whichFrame ].dur, 
                    frameArray[ whichFrame ].easing,
                    nextFrame.bind(null,  frameArray, whichFrame + 1 ) 
    );

}


// Example of use

var r = s.rect(100,100,100,100,20,20).attr({ stroke: '#123456', 'strokeWidth': 20, fill: 'red' });
var c = s.circle(50,50,50).attr({ stroke: '#123456', 'strokeWidth': 20, fill: 'blue' });

var g = s.group(r,c);

var myFrames = [
    {   el: g,  animation: { transform: 'r360,150,150' }, dur: 1000, easing: mina.bounce },
    {   el: r,  animation: { transform: 't100,-100s2,3', fill: 'green' }, dur: 1000, easing: mina.bounce },
    {   el: r,  animation: { transform: 't100,100' }, dur: 1000, easing: mina.bounce, startFunc: sayHello },
    {   el: g,  animation: { transform: 's2,1' }, dur: 1000, easing: mina.bounce },
    {   el: r,  animation: { transform: 's1,2' }, dur: 1000, easing: mina.bounce },
    {   el: c,  animation: { transform: 's1,1' }, dur: 1000, easing: mina.bounce }];

nextFrame( myFrames, 0 );

function sayHello() {
    alert('hello, this is me ==> ' + this);
}

示例

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38258915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档