问题 并行地对同一元素执行多个jQuery效果


我看到这个问题被多次询问,但没有一个解决方案适合我。 我有两个想要并行执行的效果。

我想让盒子同时淡入和反弹: http://jsfiddle.net/6VVUG/


6100
2018-05-06 19:32


起源



答案:


链接UI效果,并使用 dequeue() 一次执行它们。

$("#t").hide().show("fade", {},  {duration:1200}).effect("bounce", { times:3 },  { duration:400}).dequeue();

小提琴


12
2018-05-06 19:44



谢谢!您可以链接或将dequeue()放在最后一个效果上: jsfiddle.net/6VVUG/2  有趣的是,如果你对两种效果都加上dequeue(),那么动画就会制动。 - Registered User
是的,没错,将动画添加到同一个元素上与链接它们完全相同,它们会被添加到FX队列中,并且一次性将它们全部播放,清空FX队列,所以如果你在每个队列结束时使用dequeue声明,它不会按预期工作。 - adeneo


答案:


链接UI效果,并使用 dequeue() 一次执行它们。

$("#t").hide().show("fade", {},  {duration:1200}).effect("bounce", { times:3 },  { duration:400}).dequeue();

小提琴


12
2018-05-06 19:44



谢谢!您可以链接或将dequeue()放在最后一个效果上: jsfiddle.net/6VVUG/2  有趣的是,如果你对两种效果都加上dequeue(),那么动画就会制动。 - Registered User
是的,没错,将动画添加到同一个元素上与链接它们完全相同,它们会被添加到FX队列中,并且一次性将它们全部播放,清空FX队列,所以如果你在每个队列结束时使用dequeue声明,它不会按预期工作。 - adeneo


尝试这个

function g()
 {
    $("#t").hide();
    $('#t').show();
    $("#t").animate({ opacity: 0.5 }, 0).effect("bounce", { times:3 },  { duration:400, queue: false});
    $("#t").animate({ opacity: 1 }, 0);
 }

1
2018-05-06 19:49