Вопрос

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

Это было полезно?

Решение

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 задержки /

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top