如何使用vanilla JavaScript滚动到顶部?

如何使用vanilla JavaScript滚动到顶部?,javascript,scroll,offset,Javascript,Scroll,Offset,我试图模仿vanilla JS中的scrollTop(jQuery),所以点击它就会滚动到一个元素。这很好——除非您已经滚动过该元素。所以它不会以相反的方式滚动。我的公式是否应该包含window.pageYOffset var moves = function(scrollz) { var scrollPos = document.getElementById(scrollz).offsetTop - ((document.documentElement.clientHeight - d

我试图模仿vanilla JS中的
scrollTop
(jQuery),所以点击它就会滚动到一个元素。这很好——除非您已经滚动过该元素。所以它不会以相反的方式滚动。我的公式是否应该包含
window.pageYOffset

var moves = function(scrollz) {
    var scrollPos = document.getElementById(scrollz).offsetTop - ((document.documentElement.clientHeight - document.getElementById(scrollz).offsetHeight) / 2);

    var timerID = setInterval(function() {
        window.scrollBy(0, speed);
        if (window.pageYOffset >= scrollPos) {
            clearInterval(timerID);
        }
    }, 13);
}

scrollBy将从“实际位置”滚动到“定义的像素数”,我想您可以看一下

谢谢Philippe,我刚从window.pageYOffset开始设置了一个计数器,并以设置的间隔递增它,直到达到scrollPos[上面]为止