jQuery show por 5 segundos e depois ocultar


145

Estou usando .showpara exibir uma mensagem oculta após o envio bem-sucedido do formulário.

Como exibir a mensagem por 5 segundos e depois ocultar?

Respostas:


351

Você pode usar .delay()antes de uma animação, assim:

$("#myElem").show().delay(5000).fadeOut();

Se não for uma animação, use setTimeout()diretamente, assim:

$("#myElem").show();
setTimeout(function() { $("#myElem").hide(); }, 5000);

Você faz o segundo porque .hide()normalmente não estaria na fxfila de animação ( ) sem duração, é apenas um efeito instantâneo.

Ou, outra opção é usar .delay()e .queue()mesmo, como este:

$("#myElem").show().delay(5000).queue(function(n) {
  $(this).hide(); n();
});

1
A sugestão 2 funcionou perfeitamente mostrando um ícone de marca de seleção e usando fadeOut () em vez de hide (). Ótima resposta.
Kevin Zych

2
@wilsjd Não, você não pode, .delay()não funcionará com .hide()o elemento será mostrado e imediatamente oculto. Veja este jsFiddle é por isso que Nick afirmou: "Se não é uma animação, uso setTimeout () diretamente, como este: ...."
Wesley Smith

Hmm, eu me pergunto se isso costumava funcionar há dois anos. Bom encontrar embora. Obrigado por me manter honesto.
wilsjd

Eu também implementaram isso, mas quando eu mostrar msg duas vezes dentro de 5 segundos, então ele deve esconder prev e re-show, enquanto ele faz atraso não reset do primeiro
alamnaryab

18

Você pode usar o efeito abaixo para animar, você pode alterar os valores conforme seus requisitos

$("#myElem").fadeIn('slow').animate({opacity: 1.0}, 1500).effect("pulsate", { times: 2 }, 800).fadeOut('slow'); 

1
... $ (...) fadeIn (...) animado (...) efeito não é uma função em JQuery 2.1.3
Dustin Charles

@DustinCharles Adicione jQueryUI não apenas jQuery. jQuery não conter a função efeito (), por exemplo code.jquery.com/ui/1.12.0/jquery-ui.min.js
Rahul

0

Tão simples quanto isto:

$("#myElem").show("slow").delay(5000).hide("slow");
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.