JS властивість Object.pageYOffset


Загальний опис

pageYOffset - це властивість об'єкта Window в мові програмування JavaScript, яка надає інформацію про кількість пікселів, на яку сторінка була прокручена по вертикалі. Ця властивість використовується для визначення положення видимої частини сторінки відносно верхнього краю документу.

pageYOffset є інструментом, що знаходить своє застосування у веб-розробці, коли важливо взнати положення користувача на сторінці. Це особливо актуально при розробці адаптивних інтерфейсів та реалізації ефектів, які змінюються залежно від положення сторінки.

Щоб використовувати pageYOffset, можна скористатися таким кодом. Нехай verticalOffset буде змінною, яка отримає значення pageYOffset:

var verticalOffset = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
console.log("Вертикальний зсув сторінки: " + verticalOffset + " пікселів");

У цьому прикладі ми використовуємо глобальний об'єкт window та його властивість pageYOffset. Додатково враховано різні можливості отримання значення в разі різних браузерів.

Застосування pageYOffset проявляється в реалізації ефектів паралаксу, анімацій при прокручуванні, а також в розробці навігацій, які реагують на положення користувача. Наприклад, можна використовувати pageYOffset для визначення того, чи має змінюватися фіксований елемент чи відображати додатковий контент при прокручуванні сторінки вниз чи вгору.

Комбінування pageYOffset з іншими засобами JavaScript дозволяє створювати динамічні та ефективні інтерфейси, які адаптуються до дій користувача та положення на сторінці.

автор: Bond

Порада

При розробці односторінкових додатків використовуйте pageYOffset для визначення видимої області екрану. Це дозволяє динамічно налаштовувати вміст чи ефекти при прокрутці.

автор: Bond
Порада

Застосовуйте pageYOffset для створення "плавної" прокрутки на вашому веб-сайті. Використовуючи анімацію чи JavaScript, ви можете контролювати рух елементів при зміні значення цієї властивості.

автор: Bond
Порада

Враховуйте pageYOffset при розробці фіксованих навігаційних панелей чи "ліпких" елементів. За допомогою цієї властивості ви можете реалізувати зміну стилів або поведінки при прокрутці сторінки вниз чи вгору.

автор: Bond

Синтаксис

window.pageYOffset

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 1 9.6 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
- -

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі ми використали pageYOffset для визначення, на скільки сторінка була прокручена вертикально. Змінюючи стилі заголовка при прокручуванні, ми створюємо адаптивний ефект для вигляду веб-сайту.

HTML

<div id="header" class="scroll-demo">
    <div class="scroll-inner">Прокручуваний вміст</div>
</div>

CSS

.scroll-demo {
    width: 220px;
    height: 110px;
    overflow: auto;
    border: 1px solid #0172ad;
}

.scroll-inner {
    width: 600px;
    height: 400px;
    background: linear-gradient(135deg, #eef6ff, #0172ad);
    padding: 8px;
}

JS

// У цьому прикладі ми використовуємо pageYOffset для зміни стилів елементів при прокручуванні сторінки.
window.addEventListener('scroll', function() {
  // Отримуємо поточне вертикальне зміщення вікна
  let yOffset = window.pageYOffset;

  // Отримуємо елемент, який хочемо адаптивно зміщувати
  let headerElement = document.getElementById('header');

  // Міняємо стилі елемента в залежності від вертикального зміщення
  if (yOffset > 100) {
    headerElement.style.backgroundColor = '#f1f1f1';
  } else {
    headerElement.style.backgroundColor = 'transparent';
  }
});
автор: Bond

У цьому прикладі ми використали pageYOffset для визначення, чи користувач прокрутив сторінку до кінця. Якщо так, тоді викликається функція loadMoreContent(), яка може використовуватися для завантаження додаткового контенту, наприклад, при завантаженні нових даних з сервера.

// У цьому прикладі ми використовуємо pageYOffset для завантаження додаткового контенту при досягненні кінця сторінки.
window.addEventListener('scroll', function() {
  // Отримуємо поточне вертикальне зміщення вікна
  let yOffset = window.pageYOffset;

  // Отримуємо висоту документа
  let documentHeight = document.documentElement.scrollHeight;

  // Перевіряємо, чи досягнуто кінця сторінки і завантажуємо додатковий контент
  if (yOffset + window.innerHeight >= documentHeight) {
    loadMoreContent();
  }
});

// Функція для завантаження додаткового контенту
function loadMoreContent() {
  // Реалізація логіки завантаження додаткового контенту
  // Наприклад, отримання даних з сервера і їх відображення на сторінці
  console.log('Завантажено додатковий контент!');
}
автор: Bond

У цьому прикладі користувач зможе прокручувати сторінку вертикально та спостерігати за оновленням поточного значення window.pageYOffset. Це надасть інтерактивний спосіб демонстрації роботи властивості та її практичного використання для відстеження позиції скролу сторінки.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід