Respostas:
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 fx
fila 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();
});
.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: ...."
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');
Tão simples quanto isto:
$("#myElem").show("slow").delay(5000).hide("slow");