我需要添加一個類到'div'點擊,爲CSS3動畫。但我也需要在動畫結束後刪除該類。使用jquery添加/刪除類到每個點擊使用jquery
我想是這樣的,但它不工作 -
$('.class').click(function() {
$('.class').removeClass("animate");
$(this).addClass("animate");
});
請幫忙,謝謝。
我需要添加一個類到'div'點擊,爲CSS3動畫。但我也需要在動畫結束後刪除該類。使用jquery添加/刪除類到每個點擊使用jquery
我想是這樣的,但它不工作 -
$('.class').click(function() {
$('.class').removeClass("animate");
$(this).addClass("animate");
});
請幫忙,謝謝。
你有兩個直接possibilites:
1) 使用setTimeout
功能的動畫火災後完成。要做到這一點,你應該知道動畫的持續時間有多長:
$('.class').click(function() {
var animDuration = 1000; //ms of the animation duration
$(this).addClass("animate");
setTimeout(function(){
$(this).removeClass("animate");
}, animDuration);
});
2)一個更好的解決辦法是在animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd
添加事件監聽時觸發的動畫實際完成。對於這種方法,你不需要知道動畫的持續時間。
編輯:從adeneo
,也從here採取了一些代碼:
$('.class').click(function() {
var animDuration = 1000; //ms of the animation duration
$(this).addClass("animate");
$(this).bind('animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd', function() {
$(this).removeClass('animate');
});
});
上面的代碼並幾乎你說什麼,「動態獲取時間」。它的真正目的是監聽動畫完成/結束時觸發的事件。多事件監聽器的原因是因爲瀏覽器的兼容性,每個瀏覽器都會觸發它自己的事件。 (oAnimationEnd =歌劇,MSAnimationEnd = IE等)
可以使用動畫功能動畫
$('.class').click(function() {
$(this).addClass("animate");
$('.class').animate($('.class').removeClass("animate"),2000);
});
可以使用的setTimeout後[回調的一段時間 – Shadow
可能重複刪除它當CSS3轉換完成](http://stackoverflow.com/questions/9255279/callback-when-css3-transition-finishes) – billyonecan
可能的重複http://stackoverflow.com/questions/13884563/jquery-remove-class-after -css-animation-played –