设置滚动位置

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

我想我需要这样的东西,但它不工作:

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

有任何想法吗?

你可以使用window.scrollTo() ,如下所示:

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

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

请注意,如果您要滚动某个元素而不是整个窗口,则元素不具有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函数模拟到网页中所有外部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添加属性是坏习惯(当你看到它:-)。