jQuery 5 saniye göster ve sonra gizle


148

.showBaşarılı bir form gönderildikten sonra gizli bir mesaj görüntülemek için kullanıyorum .

Mesaj 5 saniye boyunca nasıl görüntülenir ve sonra gizlenir?

Yanıtlar:


356

.delay()Bir animasyondan önce şu şekilde kullanabilirsiniz :

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

Animasyon değilse, setTimeout()doğrudan şu şekilde kullanın :

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

İkinciyi yaparsınız, çünkü .hide()normalde fxbir süre olmadan animation ( ) kuyruğunda olmazdı, bu sadece anlık bir efekttir.

Veya, başka bir seçenek kullanmaktır .delay()ve .queue()bu gibi kendinizi:

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

1
Öneri 2, bir onay işareti simgesi gösterme ve hide () yerine fadeOut () kullanma ile mükemmel bir şekilde çalıştı. Mükemmel cevap.
Kevin Zych

2
@wilsjd Hayır yapamazsınız, .delay()çalışmayacak .hide()eleman gösterilecek ve hemen gizlenecektir. Bu jsFiddle'a bakın, bu yüzden Nick "Eğer bir animasyon değilse, setTimeout () 'u doğrudan şu şekilde kullanın: ...."
Wesley Smith

Hmm, bunun iki yıl önce işe yarayıp yaramadığını merak ediyorum. Yine de güzel buldum. Beni dürüst tuttuğunuz için teşekkürler.
wilsjd

Bunu da uyguladım, ancak 5 saniye içinde iki kez msg gösterdiğimde, o zaman önceki ve yeniden gösterimi
gizlemeli

18

Canlandırmak için aşağıdaki efekti kullanabilir, değerleri ihtiyaçlarınıza göre değiştirebilirsiniz.

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

1
$ (...). fadeIn (...). animate (...). efekti JQuery 2.1.3'te bir işlev değildir
Dustin Charles

@DustinCharles Sadece jQuery'yi değil jQueryUI'yi ekleyin. jQuery, effect () işlevini içermez, örn. code.jquery.com/ui/1.12.0/jquery-ui.min.js
Rahul

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.