2014-12-12 7 views
2

При использовании animate.css возникает проблема. Как сделать, когда вы нажимаете на класс кнопки, добавляется и после удаления анимации?Как добавить и удалить класс при нажатии

HTML:

<div></div> 
<button>Click</button> 

JavaScript

var button = document.getElementsByTagName('button')[0]; 
var div = document.getElementsByTagName('div')[0]; 

button.addEventListener('click', function() { 
    div.classList.add('animated', 'bounceInDown'); 
}); 

Ссылка на sandbox.

+0

Есть ли у Вас какой-либо метод для обнаружения, если анимация закончена? (например, событие) – MartaGom

+0

Метод может быть использован для расчета продолжительности анимации getComputedStyle (продолжительность анимации). Но тогда я не могу понять, как это сделать. – Aleksandr

+1

Я отредактировал свой ответ. Проверьте это (я думаю, это решение, хотя и грязное решение) – MartaGom

ответ

4

Вы можете использовать classList.toggle метод:

document.querySelector('.element').classList.toggle('class'); 

Эта линия добавить/удалить класс из элемента.

ПОДРОБНЕЕ ДЛЯ ОДНОГО (Dirty) РЕШЕНИЕ:

var button = document.getElementsByTagName('button')[0]; 
var div = document.getElementsByTagName('div')[0]; 

button.addEventListener('click', function() { 
    div.classList.add('animated', 'bounceInDown'); 
    setTimeout(deleteClass, 1000); 

}); 

function deleteClass(){ 
    console.log("Test"); 
    div.classList.add('animated', 'bounceInDown'); 
    div.classList.remove('animated', 'bounceInDown'); 
} 
+0

Спасибо за исправление и за положительный голос ^^ – MartaGom

+0

Вы неправильно поняли. Я имею в виду, что когда вы нажимаете кнопку, вы должны сначала добавить класс для анимации, а затем, после окончания класса анимации, удалить. – Aleksandr

+0

Хм ... извините, я вас не понял. Я сейчас думаю. – MartaGom

Смежные вопросы