2013-08-26 5 views
1

Как я могу использовать JQuery изменить CSS атрибуты HTML элемента с задержкой.Использование JQuery для изменения CSS атрибутов с задержкой

Представьте себе этот сценарий. У меня есть div с bg color синий. Я хочу, чтобы он погас, и когда он исчезает, я хочу, чтобы bg color был красным.

Я пробовал это.

$("div").fadeOut().delay(500).css("background-color","red").fadeIn(); 

Хотя выведении DIV уже меняет цвет на красный, прежде чем она исчезает. Это не следует последовательности сцепленных событий. Как я могу сделать это в одной строке.

ответ

4

Вы можете иметь любую функцию участвовать в очереди анимации с помощью queue function:

$("div") 
    .fadeOut() 
    .delay(500) 
    .queue(function() { 
     $(this).css("background-color","red").dequeue(); 
    }) 
    .fadeIn(); 

Обратите внимание на dequeue вызов в функции обратного вызова, который является то, что говорит JQuery, чтобы продолжить следующую вещь в очереди ,

+0

Да, это то, что я хотел. Спасибо за объяснение – MarsOne

+0

@MarsOne: Рады приветствовать! Рад, что помогло. –

2
$("div").fadeOut(500, function() { 
    $("div").css("background-color","red").fadeIn() 
}); 
+0

Версия 'setTimeout' была в порядке. Эта версия не задерживает то, как кажется, нужен код OP. –

+1

+1 для хорошего решения. Однако вы выбрали вариант задержки. Кажется, что 500 мс наложили на фазату. и нет задержек :( – MarsOne

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