【发布时间】:2015-11-19 12:10:30
【问题描述】:
我的问题已经被问了一百万次,但我找不到满足我需求的答案。我需要的是一个可以让我按顺序播放动画的功能。
我正在开发一个包含许多 CSS3 过渡和 jQuery/jQueryUI 动画的网站。我已将这些动画分解为基本的独立功能,例如:
- slideUpSomething();
- fadeOutSomethingElse();
- showThisOtherDude();
这些功能可以是任何东西:
- 动画A();
- 动画B();
- 动画C();
使用回调或队列使代码无法管理。老实说,我现在还不足以控制它们(虽然计划稍后学习)...... 链接似乎是不可能的,因为我以不同的方式为不同的元素设置动画。 使用计时器对我来说似乎很糟糕。
我梦想的是一个函数“animateSequentially(sequence)”,其工作方式如下:
$(document).ready(function(){
function animationA() {/*declaration*/}
function animationB() {/*declaration*/}
function animationC() {/*declaration*/}
...
function animationZ() {/*declaration*/}
function animateSequentially(sequence) {
/* Here is the code I need */
}
$('#someButton').click(function(){
animateSequentially(
[animationA,
animationB,
animationC,
... ,
animationZ]
);
});
});
要求如下:
- 动画 A 到 Z 应该一个接一个地发生
- 动画数组可以是任意长度
显然,编码方式无关紧要,我不在乎我需要使用数组还是小号,只要它可以在没有嵌套回调的情况下工作多年......任何人都可以帮我弄清楚把戏?
或者,如果您认为我应该以不同的方式编写代码,我愿意接受任何建议...
亲吻!
【问题讨论】:
-
也许你的动画函数应该将数组中的下一个动画作为参数,一旦完成,调用另一个动画,如果 array.length = 0 或 null,动画结束?
-
您对
TimelineMax和 GSAP 的了解程度如何?这正是适合GSAP产品的情况。 -
@Tahir Ahmed :从未听说过 GSAP,我目前正在查看他们的网站,似乎可以满足我的需求。如果您有时间,我很高兴阅读有关如何在答案中使用 GSAP 对其进行编码的快速摘要。愿意接受它作为我的答案;-)
标签: javascript jquery jquery-animate gsap