эффекты задержки jQuery
-
05-07-2019 - |
Вопрос
Я хочу, чтобы элемент и все его дочерние элементы исчезли с задержкой в несколько секунд.но я не нашел способа указать, что эффект должен начинаться после указанной временной задержки.
Решение
setTimeout(function() { $('#foo').fadeOut(); }, 5000);
5000 - это пять секунд в миллисекундах.
Другие советы
Я использую этот плагин для паузы, который я только что написал
$.fn.pause = function(duration) {
$(this).animate({ dummy: 1 }, duration);
return this;
};
Назовите это так:
$("#mainImage").pause(5000).fadeOut();
Примечание. Обратный звонок не требуется.
<Ч>Изменить. Теперь вы должны использовать jQuery 1.4. встроенный метод delay () . Я не проверял, но я предполагаю, что он более «умный», чем мой плагин.
Раньше вы бы сделали что-то вроде этого
$('#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
Лучший способ - использовать метод задержки jQuery:
$('#my_id').задержка (2000). Затухание (2000);
Вы можете избежать использования setTimeout, используя метод fadeTo () и установив для него 5-секундную задержку.
$("#hideAfterFiveSeconds").click(function(){
$(this).fadeTo(5000,1,function(){
$(this).fadeOut("slow");
});
});
Я написал плагин, позволяющий добавить задержку в цепочку.
например, $ ('# div'). fadeOut (). delay (5000) .fadeIn (); // исчезновение элемента, ожидание 5 секунд, возвращение элемента обратно.
Он не использует анимацию хаков или чрезмерную цепочку обратных вызовов, просто чистый короткий код.
http://blindsignals.com/index.php/2009/ 07 / JQuery задержки / р>