Я хочу вымыть элемент и все его дочерние элементы после задержки на несколько секунд. но я не нашел способ указать, что эффект должен начинаться после определенной задержки времени.
Задержка эффектов JQuery
Ответ 1
setTimeout(function() { $('#foo').fadeOut(); }, 5000);
5000 секунд составляет пять секунд в миллисекундах.
Ответ 2
Я использую этот плагин паузы, я просто написал
$.fn.pause = function(duration) {
$(this).animate({ dummy: 1 }, duration);
return this;
};
Назовите его следующим образом:
$("#mainImage").pause(5000).fadeOut();
Примечание: вам не требуется обратный вызов.
Изменить: теперь вы должны использовать jQuery 1.4. встроенный метод delay(). Я не проверял, но я предполагаю, что он более "умнее", чем мой плагин.
Ответ 3
Раньше вы делали что-то вроде этого
$('#foo').animate({opacity: 1},1000).fadeOut('slow');
Первый анимат ничего не делает, поскольку у вас уже есть непрозрачность 1 на элементе, но он приостанавливается на некоторое время.
В jQuery 1.4 они встроили это в структуру, поэтому вам не нужно использовать хак, как показано выше.
$('#foo').delay(1000).fadeOut('slow');
Функциональность такая же, как исходный плагин jQuery.delay()
http://www.evanbot.com/article/jquery-delay-plugin/4
Ответ 4
Лучший способ - использовать метод задержки jQuery:
$( '# my_id') задержка (2000).fadeOut(2000);.
Ответ 5
Вы можете избежать использования setTimeout с помощью метода fadeTo() и установить для него 5-секундную задержку.
$("#hideAfterFiveSeconds").click(function(){
$(this).fadeTo(5000,1,function(){
$(this).fadeOut("slow");
});
});
Ответ 6
Я написал плагин, чтобы добавить задержку в цепочку.
например $('# div'). fadeOut(). delay (5000).fadeIn();//вытесняем элемент, подождите 5 секунд, снова затушите элемент.
Он не использует анимационные хаки или чрезмерную цепочку обратного вызова, просто чистый чистый короткий код.