51

使用 jQuery 我正在创建一个基本的“工具提示”动画,以便工具提示将出现在一个小动画中,在该动画中它会淡入视图并垂直移动。

到目前为止,我有这个:

$('.tooltip').fadeIn('slow');
$('.tooltip').animate({ top: "-10px" }, 'slow');

这样做或这样做:

$('.tooltip').fadeIn('slow').animate({ top: "-10px" }, 'slow');

动画将一次运行一个,首先淡入,然后是垂直动画。有没有办法让它同时做这两个?

4

3 回答 3

72
$('.tooltip').animate({ opacity: 1, top: "-10px" }, 'slow');

但是,这似乎不适用于display: none元素(就像fadeIn那样)。所以,你可能需要事先把这个:

$('.tooltip').css('display', 'block');
$('.tooltip').animate({ opacity: 0 }, 0);
于 2009-10-30T22:34:18.587 回答
50

对于几年后仍在寻找的人来说,情况发生了一些变化。您现在也可以使用queuefor .fadeIn(),这样它就可以像这样工作:

$('.tooltip').fadeIn({queue: false, duration: 'slow'});
$('.tooltip').animate({ top: "-10px" }, 'slow');

这具有处理display: none元素的好处,因此您不需要额外的两行代码。

于 2014-01-07T12:15:22.700 回答
16

如果您想单独调用它们(例如,从不同的代码),另一种同时制作动画的方法是使用queue. 同样,与 Tinister 的回答一样,您必须为此使用动画而不是淡入:

$('.tooltip').css('opacity', 0);
$('.tooltip').show();
...

$('.tooltip').animate({opacity: 1}, {queue: false, duration: 'slow'});
$('.tooltip').animate({ top: "-10px" }, 'slow');
于 2009-10-30T23:31:28.077 回答