Установить положение прокрутки - PullRequest
84 голосов
/ 16 ноября 2010

Я пытаюсь установить положение прокрутки на странице, чтобы скроллер прокручивался до самого верха.

Я думаю, что мне нужно что-то подобное, но это не работает:

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

Есть идеи?

Ответы [ 3 ]

150 голосов
/ 16 ноября 2010

Вы можете использовать window.scrollTo(), например:

window.scrollTo(0, 0); // values are x,y-offset
46 голосов
/ 16 ноября 2010

Также стоит отметить window.scrollBy(dx,dy) ( ref )

26 голосов
/ 21 июля 2017

Обратите внимание, что если вы хотите прокрутить элемент вместо полного окна, у элементов нет методов 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 является вредной привычкой (когда вы ее видите: -).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...