Я пытаюсь установить положение прокрутки на странице так, чтобы ползунок прокручивался до самого верха.
Я думаю, мне нужно что-то подобное, но это не работает:
(function () { alert('hello'); document.body.scrollTop = 0; } ());
Любые идеи?
Я пытаюсь установить положение прокрутки на странице так, чтобы ползунок прокручивался до самого верха.
Я думаю, мне нужно что-то подобное, но это не работает:
(function () { alert('hello'); document.body.scrollTop = 0; } ());
Любые идеи?
Ответы:
Вы можете использовать window.scrollTo()вот так:
window.scrollTo(0, 0); // values are x,y-offset
Обратите внимание , что если вы хотите , чтобы просмотреть элемент вместо полного окна, элементы не имеют 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функции для всех в несуществующие 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- это ломка дурной привычки (когда вы это видите :-).
... Или просто замените bodyна documentElement:
document.documentElement.scrollTop = 0;