jQuery / Effects / .delay()& .stop()功能

时间:2012-04-11 03:14:20

标签: jquery effects

我正在尝试将我的内容DIV的动画首先淡出,然后停止在此淡出阶段,并将淡入淡出,以便稍后可以调用.dequeue()动态加载内容(可能通过ajax)。

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

我有两个问题 -

  1. 我的淡出现象立即发生,并且不会褪色1秒。
  2. stop()函数不会停止动画直接运行的任何内容。
  3. 我缺少什么?

1 个答案:

答案 0 :(得分:0)

有几个问题:

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

然后,.delay()所做的就是以你提供的毫秒为单位执行subsecuent动画,所以如果你做了

$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()