2010-10-25 2 views
0

Я знаю, что вы можете сделать что-то вроде этого:задержка JQuery с несколькими селекторами

$('#item').fadeOut().delay(1000).fadeIn(); 

, который будет исчезать элемент с идентификатором элемента из, а затем подождать секунду до замирания его снова. Но есть ли способ угаснуть один элемент, а другой - с задержкой между ними. Я попытался это, но он не работает:

$('#item1').fadeOut().delay(1000).('#item2').fadeIn(); 

Любая помощь очень ценится

Благодаря

ответ

4

Используйте функцию обратного вызова:

$("#item1").fadeOut(function() 
{ 
    $("#item2") 
      // Wait for 600 ms 
      .delay(600) 
      // Fade in 
      .fadeIn(); 
}); 

Смотрите доку: http://api.jquery.com/fadeIn/

fadeIn ([d uration], [ослабление], [обратный вызов])

длительность Строка или номер, определяющий продолжительность анимации.

easing Строка, указывающая, какую функцию ослабления использовать для перехода.

callback Функция для вызова после завершения анимации.

+0

Если 'duration' параметр опущен, то по умолчанию составляет 400 мс. Это означает, что '# item2' будет исчезать через 400 мс позже, а не 1000 мс позже, как ожидает OP. – BoltClock

+0

Я добавил задержку выборки 600 мс. – jantimon

1

Затухает второй элемент внутри обратного вызова, предоставляя ему задержку вместо первого элемента.

Если вы хотите, чтобы задержка считать так же, как первый элемент начинает исчезать, вычесть скорость замирания из общей задержки:

// Assuming default fading speed of 400 ms 
var speed = 400, delay = 1000; 

$('#item1').fadeOut(speed, function() { 
    $('#item2').delay(delay - speed).fadeIn(speed); 
}); 

Если вы хотите задержки рассчитывать после того, как первый элемент закончил анимации, использовать полное значение задержки:

$('#item1').fadeOut(speed, function() { 
    $('#item2').delay(delay).fadeIn(speed); 
}); 
0
setTimeout(function() { $('#item1').fadeOut();}, 500); 
setTimeout(function() { $('#item2').fadeIn(); }, 1000); 
+0

Это не будет ждать, пока '# item1' исчезнет до начала таймаута. Вы должны добавить время для fadeOut (400 м. Я полагаю) к вызову setTimeout. –

+0

ya now changed ' – ArK

Смежные вопросы