2011-06-05 19 views
5

nasıl jQuery bir element için CSS animasyon sona erdiğinde belirlemek için kullanacağı ve daha sonra bu öğeye yeni bir stil uygulamak üzerinde Stil Uygula? Aşağıda işlevsiz kodum var.jQuery - CSS Animasyon End

+0

tek tek animasyonlar için atamak zorunda kalmadan bu küresel uygulamak çalışıyorsunuz? – Fosco

+0

Aslında bireysel animasyonlar atamak gerekir:/ – Tim

cevap

14

ne arıyorsun .bind() yöntemidir aslında düşünüyorum:

$("#icon").addClass('thisClassWillApplyMyCSSAnimation').bind('animationend webkitAnimationEnd MSAnimationEnd oAnimationEnd', function(e){ 
    //DO WHATEV 
    $('#icon').css('opacity', '1'); 
}); 
0

Ne demek istediğimi anlıyorsam, bir css özelliğini canlandırmak ve animasyon sona erdiğinde yürütmek için bir geri arama tanımlamak istiyorsunuz. .animate() işlevini kullanmalısınız.

ör

$('#clickme').click(function() { 
    $('#book').animate({ 
    opacity: 0.25, 
    }, 5000, function() { 
    // Animation complete. 
    }); 
}); 

Aşağıdaki komut 0.25 mevcut değerden opaklık animasyon. Bu 5000 milisaniye sürecek. Animasyon tamamlandıktan sonra son işlev çağrılır. İşte

bu konuda JQuery sayfa

:

JQuery harika :)

+0

teşekkür ederiz, acaba şey zaten CSS3 ile animasyon hallediyorum yani, sadece o bitince jQuery bilmek istiyorum. Gereksiz gibi görünse de, gerçekten CSS'yi animasyonu yapmak için kullanmam gerekiyor :) – Tim

+1

Merhaba Tim, CSS animasyonu yerine jquery animate metodunu, çapraz tarayıcı uyumlu şekilde kullanmanız ve yukarıdaki geri arama yöntemini kullanmanız yeterli. JQuery hariç mobil cihazlarda cehennem kadar yavaştır. – addedlovely

+3

Yah Bunu gönderen kişiyle aynı fikirdeyim, webkit animasyonu bittikten sonra bir şeye nasıl bir stil ekleyeceğimizi bilmemiz gerekiyor ... – Alex

-1

(hepsi değilse de) animasyonlar aktivite tamamlandıktan sonra bir geri arama tanımlamak çoğu.

$("#MyDiv").slideDown("[speed]", function() 
{ 
    $("#icon").css("opacity", "1"); 
}); 

// [speed] = "slow", "normal", "fast" or a integer value defining milliseconds 

Bunu test etmedim ama çalışması gerekir: Eğer slideDown() #MyDiv nesnesine istiyoruz ve bu tam bir zamanlar, #icon saydamlığını değiştirmek varsayarak Örneğin

. ..

+0

Konuyu bekleyin ve sorusunu yanıtlayın. Bu tamamen yanlıştır, çünkü jquery'nin webkit animasyonları olaylarını nasıl konuşabileceği konusuna değinmiyorsunuz. – Alex

3

kullanabilirsiniz one()

$("#icon").one('animationend webkitAnimationEnd MSAnimationEnd oAnimationEnd', function(e) { 
    //Your css 
    $('#icon').css('opacity', '1'); 
});