我试图在页面上设置滚动位置,以便将滚动条一直滚动到顶部。
我想我需要像这样的东西,但是它不起作用:
(function () { alert('hello'); document.body.scrollTop = 0; } ());
有任何想法吗?
我试图在页面上设置滚动位置,以便将滚动条一直滚动到顶部。
我想我需要像这样的东西,但是它不起作用:
(function () { alert('hello'); document.body.scrollTop = 0; } ());
有任何想法吗?
Answers:
您可以这样使用window.scrollTo():
window.scrollTo(0, 0); // values are x,y-offset
请注意,如果要滚动元素而不是整个窗口,则元素没有scrollToand 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功能模拟到网页中所有现有的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是一种坏习惯(当您看到时:-)。