设置滚动位置
问题描述:
我试图在页面上设置滚动位置,以便滚动条一直滚动到顶部。设置滚动位置
我想我需要这样的事情,但它不工作:
(function() { alert('hello'); document.body.scrollTop = 0; }());
任何想法?
答
注意,如果你要滚动的元素,而不是完整的窗口,元素没有scrollTo
和scrollBy
方法。你应该:
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.scrollTo
和window.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
是一个坏习惯(当你看到它时:-)。
非常感谢你 – yussan 2018-01-11 02:57:32