При нажатии на картинку она должна сдвинуться вниз на и вернуться js

Рейтинг: 0Ответов: 1Опубликовано: 22.04.2023

Нужен код анимации на JavaScript При нажатии на картинку она должна сдвинуться вниз на 200px и вернуться обратно

Ответы

▲ 0

Я бы сделал так.

document.querySelector('#btn').addEventListener('click', function(event) { // Вешаем клик
  // Проверяем статус disabled, чтобы анимация не запускалась ещё раз
  // при нажатии на кнопку в момент анимации
  if(event.target.disabled === false) {
    event.target.disabled = true; // Когда запускам, запрещаем нажатие классом disabled
    event.target.style.transform = 'translateY(200px)'; // Меняем стили
    
    event.target.addEventListener('transitionend', function() { // Когда кнопка уйдёт вниз, сработает этот ивент
      event.target.style.transform = ''; // Тут мы уберём трансформ и анимация запустится в обратную сторону
      
      event.target.addEventListener('transitionend', function() { // Когда анимация закончится, запустится эта
        event.target.disabled = false; // Тут мы уже снимаем нажатие
      }, {once: true});
    }, {once: true});
  }
});
#btn {
  transition: transform .5s ease;
  /* Важный момент, должен присутствовать transition-duration, иначе скрипт будет работать некорректно. */
}
<button id="btn">Нажми меня</button>

Подробнее в комментариях к коду.