@sergey_from_saratov

Почему не удаётся вызвать анимацию второй раз?

Хочу чтобы при нажатии на кнопку эффект красного бэкграунда заново начинался, но этого не происходит. Почему? Как фиксить? И как избежать бага когда этот элемент с анимацией скрываешь, а потом отображаешь анимация начинается заново?
https://codepen.io/anon/pen/rzZYLV
  • Вопрос задан
  • 159 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Надо удалять класс, отвечающий за анимацию, после её завершения. Можно делать это по событию animationend:

<button>click me</button>

button {
  background: green;
}

@keyframes xxx {
    0% { background-color: red; }
  100% { background-color: transparent; }
}

.xxx {
  animation: xxx 2s;
}

$('button').on({
  click() {
    $(this).addClass('xxx');
  },
  animationend() {
    $(this).removeClass('xxx');
  },
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы