SORU
13 ŞUBAT 2012, PAZARTESİ


Geri arama ne zaman CSS3 geçiş tamamlanır

DOM öğesinden kaldırmak bittiğinde bir elemanın (0-opaklığı geçiş) ve daha sonra fade out yapmak istiyorum.

JQuery bu "bir animasyon sonra daha ne" tamamlar. Kaldırmak belirtebilirsiniz beri bellidir Ama eğer CSS3 geçişleri kullanarak animasyon istersem zaten oraya geçiş/animasyon tamamlandığında.

CEVAP
13 ŞUBAT 2012, PAZARTESİ


Geçişler için aşağıdaki jQuery ile bir geçiş sonuna algılamak için kullanabilirsiniz:

$("#someSelector").bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ ... });

Mozilla mükemmel bir referans vardır:

https://developer.mozilla.org/en/CSS/CSS_transitions#Detecting_the_completion_of_a_transition

Animasyonlar için çok benzer

$("#someSelector").bind("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function(){ ... });

Bağlama içine tarayıcı öneki olay dizeyi iletebilirsiniz not() metodu aynı anda destekleyen tüm tarayıcılarda olay ateş desteği için.

Güncelleme:

Yorum Ördek bıraktığı başına: işleyici yalnızca bir kez patlar. emin olmak için bir WordPress kullanmak .one() yöntemi kullanın Örneğin:

$("#someSelector").one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ ... });

$("#someSelector").one("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function(){ ... });

Güncelleme 2:

bind() jQuery yöntem kalmıştır, ve on() yöntemjQuery 1.7olarak tercih edilir. bind()

Ayrıca ateş olacak sağlamak için geri arama fonksiyonu off() yöntem yalnızca bir kez kullanabilirsiniz. Burada one() yöntemi kullanılarak eşdeğer bir örnek:

$("#someSelector")
.on("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd",
 function(e){
    // do something here
    $(this).off(e);
 });

Referanslar:

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • dcigs

    dcigs

    9 EYLÜL 2006
  • How to Cook ?

    How to Cook

    31 Ocak 2007
  • Sarah's YouTube Channel

    Sarah's YouT

    27 Temmuz 2009