Window.scrollY

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.

scrollY — свойство только для чтения интерфейса Window. Возвращает число пикселей, на которое документ пролистали в данный момент по вертикали. В современных браузерах это значение является точным числом субпикселей, что означает отсутствие необходимости в полном значении количества пикселей. Вы можете получить количество пикселей, пролистанных по горизонтали с помощью свойства scrollX.

Синтаксис

var y = window.scrollY

Значение

Возвращаемое значение является числом с плавающей точкой двойной точности, показывающее количество пикселей в документе, которые были пролистаны на данный момент от начальной позиции, где положительное значение означает, что контент был пролистан наверх. Если документ был просматривается на устройстве с возможностью вычислять точное число субпикселей, то возвращаемое значение также является точным количеством субпикселей и может иметь десятичную часть. Если контент не был пролистан ни в одну из сторон по Y, то scrollY = 0.

Примечание: Если вам нужно получить целочисленное значение, используйте Math.round() для округления.

Говоря технически, то scrollY возвращает Y-координату от верхнего края текущего окна просмотра (viewport). Если окна просмотра нет, то возвращаемое значение = 0.

Пример

js
// проверить и перейти ко второй странице
if (window.scrollY) {
  window.scroll(0, 0); // Обнулите позицию пролистывания на левый верхний угол документа.
}

window.scrollByPages(1);

Примечания

Применяйте данное свойство для проверки, был ли пролистан документ, когда используете похожие функции для работы с пролистыванием, такие как scrollBy(), scrollByLines(), or scrollByPages().

Свойство pageYOffset - другое название свойства scrollY :

window.pageYOffset == window.scrollY; // всегда верно

Для кросс-браузерной совместимости используйте window.pageYOffset вместо window.scrollY. Кроме того, старые версии Internet Explorer (<9) не поддерживают оба свойства. Для работы в Internet Explorer необходимо использовать нестандарные свойства. Пример полностью совместимого со всеми браузерами кода:

js
var supportPageOffset = window.pageXOffset !== undefined;
var isCSS1Compat = (document.compatMode || "") === "CSS1Compat";

var x = supportPageOffset
  ? window.pageXOffset
  : isCSS1Compat
    ? document.documentElement.scrollLeft
    : document.body.scrollLeft;
var y = supportPageOffset
  ? window.pageYOffset
  : isCSS1Compat
    ? document.documentElement.scrollTop
    : document.body.scrollTop;

Спецификации

Specification
CSSOM View Module
# dom-window-scrolly

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также