当动画完成时,向GreenSock传递一个回调
Pass a callback to GreenSock when done with animating
我找了很多问题的答案,但没有找到。
那么,我的问题是:
我正在做一个网站,在第一页,我有一个"手"图像移动到公司的"标志"。在那之后,公司标志的形象移动,但只有在第一次移动完成后。
我的代码是:function hand() {
var hand = TweenMax.fromTo(".start .hand", 2.5,
{top: -300, left: -400, rotation: 10},
{top: -300, rotation: 40, left: -300});
}
使用TweenMax库将手移到那个位置
另一个函数是:
function bolas(){
$('.bolinhas').css({display:'block'});
var bolinha1 = TweenMax.fromTo(".start .bolinha1", 5.5,
{top: 150, left: -100},
{top: 650, left: 100});
var bolinha2 = TweenMax.fromTo(".start .bolinha2", 5.5,
{top: 150, left: -50},
{top: 680, left: -200});
var bolinha3 = TweenMax.fromTo(".start .bolinha3", 5.5,
{top: 100, left: -80},
{top: 680, left: 290});
var bolinha4 = TweenMax.fromTo(".start .bolinha4", 5.5,
{top: 80, left: -110},
{top: 680, left: -250} );
var bolinha5 = TweenMax.fromTo(".start .bolinha5", 5.5,
{top: 100, left: -15,},
{top: 650, left: -70});
var bolinha6 = TweenMax.fromTo(".start .bolinha6", 5.5,
{top: 150, left: -20},
{top: 680, left: 250});
var bolinha7 = TweenMax.fromTo(".start .bolinha7", 5.5,
{top: -50, left: -10},
{top: 650, left: -70});
var bolinha8 = TweenMax.fromTo(".start .bolinha8", 5.5,
{top: -150, left: -160},
{top: 680, left: -350});
var bolinha9 = TweenMax.fromTo(".start .bolinha9", 5.5,
{top: -150, left: 10},
{top: 680, left: 70});
}
使用相同的库,它们在同一时间进行此移动。
如何将第二个函数调用回第一个函数?
尝试使用onComplete
:
var bolinha1 = TweenMax.fromTo(".start .bolinha1", 5.5,
{top: 150, left: -100},
{top: 650, left: 100},
{onComplete:complete});
var complete = function () {
//do something
};
有两种方法可以做到这一点——
-
您可以简单地在
fromTo
函数中使用onComplete
回调,如下所示-var hand = TweenMax.fromTo(".start .hand", 2.5, {top: -300, left: -400, rotation: 10}, {top: -300, rotation: 40, left: -300}, {onComplete: bolas});
-
您可以使用TweenMax库中的
eventCallback()
函数。在TweenMax文档中,eventCallback()
是这样做的——获取或设置事件回调,如"onComplete","onUpdate","onStart","onreverseccomplete"或"onRepeat"(onRepeat仅适用于TweenMax或TimelineMax实例)以及应该传递给该回调的任何参数。
在您的情况下,您可以简单地通过执行以下操作来实现结果-
function hand() { var hand = TweenMax.fromTo(".start .hand", 2.5, {top: -300, left: -400, rotation: 10}, {top: -300, rotation: 40, left: -300}); hand.eventCallback("onComplete", bolas); }
希望这对你有帮助!
似乎你正在利用GreenSock库为此,你应该创建一个TimelineLite
的动画,一些伪代码作为解释:
//instantiate a TimelineLite
var tl = new TimelineLite();
//add a from() tween at the beginning of the timline
tl.from(head, 0.5, {left:100, opacity:0});
//add another tween immediately after
tl.from(subhead, 0.5, {left:-100, opacity:0});
//use position parameter "+=0.5" to schedule next tween 0.5 seconds after previous tweens end
tl.from(feature, 0.5, {scale:.5, autoAlpha:0}, "+=0.5");
//use position parameter "-=0.5" to schedule next tween 0.25 seconds before previous tweens end.
//great for overlapping
tl.from(description, 0.5, {left:100, autoAlpha:0}, "-=0.25");
给这段代码一个回调是很容易的,你可以简单地在新的var tl;
中传递一个函数,它看起来像:
var tl = new TimelineLite({onComplete: functionX()});
其中functionX是您希望作为回调执行的函数
相关文章:
- 如何将一个JavaScript函数回调为多个函数
- 在另一个Find(..)的回调内部查找,如何逃离回调地狱
- 使用reactjs setState回调获取上一个输入值的计算值
- 正在读取<p: 选择一个菜单/>在onchange回调中
- Javascript使用本地存储,回调对象并用Json更改为一个字符串以用于填充函数
- 与 promise 一起使用时,异步瀑布不执行下一个回调方法
- 如何使用另一个 JavaScript 文件中定义的类名调用回调函数
- Angular,设置一个回调函数,用于在工厂和控制器之间更新
- 如何运行一个调用某个函数的函数首先完成它,然后再调用下一个函数.正在创建回调函数
- 使用 CoffeeScript 的类和 jquery.transit 创建一个回调循环
- 如何通过一个回调异步排队和执行多个promise
- 如何在另一个函数的回调中调用JavaScript函数
- 自定义Cordova插件,释放一个保持回调而不调用它
- NodeJS将一个额外的参数传递给回调
- 编写一个使用传递两个参数的回调的承诺
- 带有一个回调的多个循环ajax请求
- 在另一个getJSON调用的回调中,没有为getJSON调用触发回调
- 仅在堆栈中的最后一个执行回调
- 我试图使用jquery或javascript回调一个简单的动画
- 我能给MVC Ajax回调一个参数吗?