вам не нужен таймер для этой цели. достаточно в момент нажатия запомнить текущее время а в момент отжатия от текущего времени вычесть запомненное.
// переменная, в которую запоминаем время
let pressedTime = Date.now();
...
// при нажатии
pressedTime = Date.now();
...
// при отжатии
const passedTime = Date.now()-pressedTime;
console.log("С момента нажатия прошло", passedTime, "миллисекунд");
console.log("С момента нажатия прошло", passedTime/1000, "секунд");
// при отрисовке внутри цикла window.requestAnimationFrame(loop);
if( кнопка нажата ){
const passedTime = Date.now()-pressedTime;
style.margin = (parseInt(style.margin)+passedTime/100) + 'px';
}
если вам нужно более точное время чем миллисекунды то вместо
Date.now() используйте
performance.now()
ну и вот еще посмотрите для реализации цикла игры
https://developer.mozilla.org/ru/docs/DOM/window.r...
вот наваял простенький вариант: