<div class="box">
  <div>Кликни и начнется анимация</div>
</div>
body {
  margin: 0;
  padding: 0;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

.box {
  width: 220px;
  height: 100px;
  background-color: pink;
  box-sizing: border-box;
  border: 2px solid rgba(0, 0, 0, 0.24);
  text-align: center;
}

.box_animate_1 {
  animation: 2s animate forwards;
}

@keyframes animate {
  0%: {
    transform: translateX(0);
  }
  50% {
    transform: translateX(50px);
  }
  100% {
    transform: translateX(0);
  }
}

.box_animate_2 {
  animation: 2s animate_2 forwards;
}

@keyframes animate_2 {
  0%: {
    transform: rotate(0);
  }
  100% {
    transform: rotate(360deg);
  }
}


let box = document.querySelector('.box');

box.addEventListener("click", function() {
  box.classList.add('box_animate_2');
});

// Отслеживаем окончание анимации
box.addEventListener("animationend", AnimationHandler, false);

function AnimationHandler () {
  // Удаляем класс с анимацией
  box.classList.remove('box_animate_2');
  
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.