使用jQuery我正在创建一个基本的“工具提示”动画,以便工具提示将出现在一个小动画中,在该动画中,它会逐渐消失并垂直移动。
到目前为止,我有这个:
$('.tooltip').fadeIn('slow');
$('.tooltip').animate({ top: "-10px" }, 'slow');
以这种方式或这样做:
$('.tooltip').fadeIn('slow').animate({ top: "-10px" }, 'slow');
动画将一次运行一个,首先是淡入淡出,然后是垂直动画。有没有办法让它同时做到这两件事?
答案 0 :(得分:70)
$('.tooltip').animate({ opacity: 1, top: "-10px" }, 'slow');
但是,这似乎不适用于display: none
元素(如fadeIn
那样)。所以,您可能需要事先说明这一点:
$('.tooltip').css('display', 'block');
$('.tooltip').animate({ opacity: 0 }, 0);
答案 1 :(得分:49)
对于仍然在几年后看的人来说,情况有所改变。您现在可以queue
使用.fadeIn()
,以便它可以像这样工作:
$('.tooltip').fadeIn({queue: false, duration: 'slow'});
$('.tooltip').animate({ top: "-10px" }, 'slow');
这样可以处理display: none
元素,因此您不需要额外的两行代码。
答案 2 :(得分:16)
如果要单独调用它们(例如,使用不同的代码),同时动画的另一种方法是使用queue
。同样,与Tinister的回答一样,你必须使用animate来实现这一点而不是fadeIn:
$('.tooltip').css('opacity', 0);
$('.tooltip').show();
...
$('.tooltip').animate({opacity: 1}, {queue: false, duration: 'slow'});
$('.tooltip').animate({ top: "-10px" }, 'slow');