Как изменить состояние чекбокса через некоторое время после нажатия?

Есть чекбокс, по нажатию на него происходит анимация, но чтобы анимация произошла еще раз, нужно выключить чекбокс и опять включить.

Есть скрипт который будет выключать чекбокс через определенное время, в моем случае после срабатывания анимации?

div {
    width: 50px;
    height: 50px;
    background: #000;
    position: absolute;
    top: 40px;
}
#ch1:checked ~ div {
    animation: down .5s ease;
}

@keyframes down {
    0% {top: 40px;}
    50% {top: 80px;}
    100% {top: 40px;}
}
<input id="ch1" type="checkbox">
<div></div>


Ответы (1 шт):

Автор решения: OPTIMUS PRIME

Через событие animationend, можно поймать завершение анимации и снять галочку:

_id("ch1").addEventListener("click", function() {
  this.style.display = "none";
});

_id("box").addEventListener("animationend", function() {
  let cb = _id("ch1");
  cb.style.display = "";  
  
  cb.checked = false;
});

function _id(str) { return document.getElementById(str); }
div {
  width: 50px;
  height: 50px;
  background: #000;
  position: absolute;
  top: 40px;
}

#ch1:checked ~ div {
  animation: down .5s ease;
}

@keyframes down {
  0% { top: 40px; }
  50% { top: 80px; }
  100% { top: 40px; }
}
<input id="ch1" type="checkbox">
<div id="box"></div>

→ Ссылка