效果结束前回调?

发布于 2025-01-03 07:02:49 字数 330 浏览 0 评论 0原文

我正在使用 JQuery-UI。我想在当前效果完成之前开始一种新效果。是否可以?

目前,我正在使用类似以下代码:

    div1.hide({
        duration: 1000,
        easing: 'easeOutQuint',
        effect: 'drop',
        direction : 'up'
    });
    div1.promise().done(function(){
        div2.show();
    });

谢谢!

编辑:如果可能的话,我想避免计时器。

I am using JQuery-UI. I want to start a new effect before the current one has finished. Is it possible?

Currently, I'm using something like this code:

    div1.hide({
        duration: 1000,
        easing: 'easeOutQuint',
        effect: 'drop',
        direction : 'up'
    });
    div1.promise().done(function(){
        div2.show();
    });

Thank you!

Edit: I 'd like to avoid timers, if possible.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

且行且努力 2025-01-10 07:02:49

您只需使用 setTimeout() 即可完成此操作:

div1.hide({
    duration: 1000,
    easing: 'easeOutQuint',
    effect: 'drop',
    direction : 'up'
});
setTimeout(function(){
    div2.show();
}, 900);

上面的代码将在 div1.hide() 持续时间之前大约 100 毫秒有效启动 div2.show() 结束(换句话说:1000 毫秒的动画开始后 900 毫秒)。

You can do it simply by using setTimeout():

div1.hide({
    duration: 1000,
    easing: 'easeOutQuint',
    effect: 'drop',
    direction : 'up'
});
setTimeout(function(){
    div2.show();
}, 900);

The above will effectively start div2.show() aproximately 100 miliseconds before the duration of div1.hide() ends (in other words: 900 miliseconds after the 1000-miliseconds animation starts).

纵性 2025-01-10 07:02:49

您可以使用 $.stop() 取消当前效果

You can cancel the current effect using $.stop()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文