javascript - TweenMax staggerFromTo() onCompleteAll 不等待补间完成
问题描述
我正在使用静态 staggerFromTo() 在按钮单击时为孩子设置动画。查看文档,第 6 个参数是 onCompleteAll,它应该在整个补间序列完成后调用。
当我使用它时,onCompleteAll 参数中的函数在 Tween 启动时调用,而不是在它完成时调用。如果您查看下面的小提琴并打开控制台,您可以在单击按钮后立即看到它记录“完成”。
难道我做错了什么?我不明白参数是如何工作的吗?
$('button').on('click', function() {
TweenMax.staggerFromTo($('.wrapper').children(), 1, {
x: 0,
opacity: 1,
}, {
x: 50,
opacity: 0,
}, .2, logDone())
})
function logDone() {
console.log('done');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.2.6/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>animate</button>
<div class="wrapper">
<div>
one
</div>
<div>
two
</div>
<div>
three
</div>
</div>
解决方案
主要问题是您通过()
在函数名称后添加 立即调用该函数。你应该只是通过logDone
。
但是既然你已经在加载GSAP 3,为什么不使用 GSAP 3 语法呢?
这是我编写您的 JS 的方式:
$('button').on('click', function() {
gsap.fromTo('.wrapper > *', {
x: 0,
opacity: 1,
}, {
duration: 1,
stagger: 0.2,
x: 50,
opacity: 0,
onComplete: logDone
})
})
function logDone() {
console.log('done');
}
推荐阅读
- sql - 将 rank() 与 partition by 和 order by case 一起使用
- javascript - 地图渲染后在 Android 上反应原生地图“LongitudeDelta”错误
- java - 即使主项目有语法错误,也可以在android studio中独立测试简单的java代码
- java - 如何下载 protobuf-socket-rpc maven 存储库?
- jestjs - 找不到 Nestjs 测试模块
- include - Sequelize - 无法绑定多部分标识符
- react-native - 在 react-native 中,我们如何自动检测字符串中的链接和电话号码并在文本中突出显示它们
- python - 我想根据我的演讲刷新我的报告是否可以在 Power BI 中使用?
- java - Java 中的 Nats 请求/回复
- typescript - Apollo、Express、WS 会话未共享