0

我试图让我的内容动画DIV首先淡出,然后在这个淡出阶段停止,并且只将淡入排队,以便在.dequeue()我动态加载内容(可能通过 ajax)后可以调用。

$content.fadeTo(1000,0.0).delay(1000).stop().fadeTo(1000, 1)

我有两个问题-

  1. 我的淡出立即发生并且不会淡出 1 秒。
  2. stop()功能不会停止动画直接运行的任何内容。

我错过了什么?

4

1 回答 1

0

有几个问题:

$content.fadeTo(1000,0.0)将在 1 秒内淡出您的 div(.fadeOut(1000)如果您愿意,可以使用)。

然后,.delay()daley 会按您提供的毫秒数执行后续动画,所以如果您这样做

$content.fadeOut(1000).delay(300).fadeIn();它将在持续 1 秒的动画中淡出 div,等待 300 毫秒,然后将 div 淡入。

到目前为止一切都很好,但是.stop()在匹配的元素中停止动画,所以你fadeTo不会运行,它不会排队。然后,当你这样做.fadeTo(1000, 1)(相当于.fadeIn(1000))时,div 已经可见,所以它什么也不做。

我建议你这样做:

$content.fadeOut(1000);

//Later in the code
$.ajax({
//...
success: function() {
     //code..
     $content.fadeIn(1000);
});

但是,如果您想将动画排队,您可以使用.queue()dequeue()

于 2012-04-11T03:38:56.883 回答