Анимация через JavaScript

Реализуйте функцию animate, с помощью которой можно управлять CSS-свойствами.

Функция animate принимает два аргумента:

  • ms — время в миллисекундах, в течение которого происходит анимация;
  • cb — функция, которая многократно вызывается в течение этого времени

На каждом вызове cb аргумент progress равен числу от 0 до 1. При этом значение progress должно линейно увеличиваться при каждом вызове.

Демо

Для того, чтобы протестировать функцию, можно локально создать html-файл со следующим кодом:

<style> .road { width: 1125px; height: 225px; background-color: bisque; } .car { position: relative; left: 0px; } </style> <div class="road"> <img class="car" src="https://maxcode.dev/static/problems/animate/car.png"> </div> <script> function animate(ms, cb) { } const car = document.querySelector(".car"); car.addEventListener("click", () => { animate(3000, progress => { car.style.left = progress * 900 + "px"; }); }); </script>

В секции script мы находи на странице html-элемент, при клике на который запускается анимация.

Анимация заключается в том, что с ростом значения аргумента progress свойство left меняется от 0px до 900px и машинка двигается вправо.