2012-04-11 3 views
0

Я пытаюсь, чтобы моя анимация моего контента DIV сначала затухала, а затем останавливалась на этом этапе постепенного выцветания и только очередь затухания, так что .dequeue() может вызывается позже, когда я загружаю контент динамически (возможно, через ajax).jQuery/Эффекты/.delay() & .stop() function

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

У меня два вопроса -

  1. моей затухать происходит сразу и не выгорает в течение 1 сек.
  2. stop() Функция не останавливает ничего, анимация просто проходит прямо.

Что мне не хватает?

ответ

0

Есть несколько проблем:

$content.fadeTo(1000,0.0) будет исчезать ваш DIV в 1 секунду (можно использовать .fadeOut(1000), если вы хотите).

Тогда, что .delay() делает Daley выполнение subsecuent анимации по миллисекундах вы указали, так что если вы

$content.fadeOut(1000).delay(300).fadeIn(); Это будет исчезать из DIV в анимации, который длится 1 секунду, подождите 300 миллисекунд, а затем fade the div back in.

До сих пор так хорошо, но то, что .stop() делает, останавливает анимацию в согласованных элементах, поэтому ваш fadeTo не будет запущен, он не будет стоять в очереди. Затем, когда вы делаете .fadeTo(1000, 1) (эквивалентно .fadeIn(1000)), div уже виден, поэтому он ничего не делает.

Я рекомендую вам сделать:

$content.fadeOut(1000); 

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

Но если вы хотите стоять в очереди анимации вы можете использовать .queue() и dequeue()