Не работает cancelAnimationFrame

var c = 0;
function movright() {
    c++;
    img.style.top = c + "px";
    requestAnimationFrame(movright);
}
document.onkeydown = function() {
    if(event.keyCode == 40) {
        var k = requestAnimationFrame(movright);
    }
};
document.onkeyup = function() {
    cancelAnimationFrame(k);
}

как правильно выполнить cancelAnimationFrame в данном случае?


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

Автор решения: nazarpunk

У вас onkeyup не видит переменную k

let k = 0;

var c = 0;
function movright() {
    c++;
    img.style.top = c + "px";
    k = requestAnimationFrame(movright);
}
document.onkeydown = function() {
    if(event.keyCode == 40) {
        k = requestAnimationFrame(movright);
    }
};
document.onkeyup = function() {
    cancelAnimationFrame(k);
}
→ Ссылка