设置滚动位置

问题描述:

我试图在页面上设置滚动位置,以便滚动条一直滚动到顶部。设置滚动位置

我想我需要这样的事情,但它不工作:

(function() { alert('hello'); document.body.scrollTop = 0; }()); 

任何想法?

您可以使用window.scrollTo(),像这样:

window.scrollTo(0, 0); // values are x,y-offset 
+0

非常感谢你 – yussan 2018-01-11 02:57:32

另外值得注意的window.scrollBy(dx,dy)ref

+0

这是非常有用的 – Jeff82 2017-07-20 01:27:41

注意,如果你要滚动的元素,而不是完整的窗口,元素没有scrollToscrollBy方法。你应该:

var el = document.getElementById("myel"); // Or whatever method to get the element 

// To set the scroll 
el.scrollTop = 0; 
el.scrollLeft = 0; 

// To increment the scroll 
el.scrollTop += 100; 
el.scrollLeft += 100; 

你也可以模仿window.scrollTowindow.scrollBy功能,所有在网页中existant HTML元素:

Object.defineProperty(HTMLElement.prototype, "scrollTo", { 
    value: function(x, y) { 
     el.scrollTop = y; 
     el.scrollLeft = x; 
    }, 
    enumerable: false 
}); 

Object.defineProperty(HTMLElement.prototype, "scrollBy", { 
    value: function(x, y) { 
     el.scrollTop += y; 
     el.scrollLeft += x; 
    }, 
    enumerable: false 
}); 

所以你可以做:

var el = document.getElementById("myel"); // Or whatever method to get the element, again 

// To set the scroll 
el.scrollTo(0, 0); 

// To increment the scroll 
el.scrollBy(100, 100); 

注意:鼓励Object.defineProperty,因为直接将属性添加到prototype是一个坏习惯(当你看到它时:-)。