Подтвердить что ты не робот

Установить положение прокрутки

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

Мне кажется, мне нужно что-то подобное, но оно не работает:

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

Любые идеи?

4b9b3361

Ответ 1

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

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

Ответ 2

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

Ответ 3

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