SORU
25 Kasım 2008, Salı


Zaman aşımı koymak özel efektler

Bir unsuru olarak yavaş yavaş, sonra 5000 var ms yine fade tekrar etmeye çalışıyorum. Gibi bir şey yapabileceğimi biliyorum:

setTimeout(function () { $(".notice").fadeOut(); }, 5000);

Ama bu sadece fade out, geri yukarıdaki Ekle ki? kontrol edecek

CEVAP
25 Kasım 2008, Salı


Güncelleme:JQuery 1.4 .delay( n ) yöntemi kullanabilirsiniz. http://api.jquery.com/delay/

$('.notice').fadeIn().delay(2000).fadeOut('slow'); 

Not: $.show() varsayılan $.hide() sıraya değil, eğer onlarla $.delay() kullanmak istiyorsanız, onları bu şekilde yapılandırmanız gerekir:

$('.notice')
    .show({duration: 0, queue: true})
    .delay(2000)
    .hide({duration: 0, queue: true});

Muhtemelen Sıra sözdizimi kullanabilirsiniz, bu işe yarayabilir:

jQuery(function($){ 

var e = $('.notice'); 
e.fadeIn(); 
e.queue(function(){ 
  setTimeout(function(){ 
    e.dequeue(); 
  }, 2000 ); 
}); 
e.fadeOut('fast'); 

}); 

ya gerçekten becerikli ve bunu yapmak için bir jQuery işlevi yapabilirsin.

(function($){ 

  jQuery.fn.idle = function(time)
  { 
      var o = $(this); 
      o.queue(function()
      { 
         setTimeout(function()
         { 
            o.dequeue(); 
         }, time);
      });
  };
})(jQuery);

( teoride , bellek burada çalışma ) izin olurdu bu.

$('.notice').fadeIn().idle(2000).fadeOut('slow'); 

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ElChakotay Andrich

    ElChakotay A

    10 EKİM 2013
  • Michael Neal

    Michael Neal

    2 Mayıs 2009
  • steven johns

    steven johns

    11 Mart 2011