Adding additional arguments to a function called back by requestAnimationFrame

前端 未结 2 823
情话喂你
情话喂你 2021-01-05 07:50

I am looking to create a function that scrolls an image element x pixels over y time on an HTML5 canvas, using requestAnimationFrame and delta time. What I can\'t figure out

2条回答
  •  灰色年华
    2021-01-05 08:14

    Pure JavaScript

    function scrollIntoViewSmooth(elem) {
        var move = elem.offsetTop - (elem.offsetTop - elem.parentElement.scrollTop) * 0.25;
    
        if (Math.abs(elem.offsetTop - move) <= 2) {
            elem.parentElement.scrollTop = elem.offsetTop;
        } else {
            elem.parentElement.scrollTop = move;
            setTimeout(scrollIntoViewSmooth, 33, elem);
        }
    }
    

    Example

    scrollIntoViewSmooth(document.getElementById('stuff'));
    

提交回复
热议问题