JS властивість Event.screenY


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

screenY — це властивість об'єкта MouseEvent, яка повертає вертикальну (по осі Y) позицію курсору миші в пікселях відносно верхнього лівого кута екрана. Як і screenX, ця властивість відображає положення курсору не відносно браузера чи документа, а відносно фізичного екрана або екранів, якщо їх декілька. Вона зчитує точну координату курсору незалежно від прокручування сторінки або положення елементів.

Коли користувач виконує будь-яку дію з мишею (наприклад, натискає кнопку миші або пересуває курсор), об'єкт події MouseEvent надає доступ до кількох властивостей, серед яких є screenY. Ця властивість дозволяє розробникам відстежувати, на якій висоті екрану знаходиться курсор, що особливо корисно для створення складних інтерфейсів, таких як інтерактивні ігри, графічні редактори або будь-які програми, що потребують точного відстеження рухів миші.

Приклад використання:

document.addEventListener('mousemove', function(event) {
    console.log(event.screenY);
});

У цьому прикладі під час переміщення миші по екрану в консоль будуть виводитися значення координати screenY. Це значення може використовуватися для різних цілей, таких як зміна положення елементів на сторінці або динамічне реагування на переміщення курсору.

На відміну від координат вікна браузера (clientY), screenY дає глобальну позицію миші на всіх моніторах. Якщо курсор знаходиться на додатковому екрані, що знаходиться вище або нижче основного, значення screenY змінюватиметься відповідно до цього розташування. Наприклад, при використанні двох моніторів, де додатковий екран знаходиться нижче головного, значення screenY може бути більшим за висоту основного екрану, оскільки враховується висота обох моніторів.

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

автор: Bond

Порада

Щоб краще розуміти співвідношення між координатами екрана і вікна браузера, використовуйте одночасно властивості screenY і clientY. Це допоможе відслідковувати позицію курсора як на рівні екрана, так і на рівні сторінки.

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

Якщо ви використовуєте значення screenY для анімацій або інтерфейсів, переконайтеся, що елементи реагують на рух миші плавно. Використовуйте додаткові функції, такі як requestAnimationFrame, щоб уникнути ривків під час оновлення позиції або стилю елементів.

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

Для створення складних інтерфейсів, що реагують на положення миші, можна комбінувати screenY з іншими подіями миші, такими як mousedown, щоб активувати певну поведінку елементів при певному положенні курсору.

автор: Bond

Синтаксис

event.screenY

Переглядачі

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

Приклади

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

У цьому прикладі координата screenY використовується для поділу екрану на дві частини. Якщо курсор миші знаходиться у верхній частині екрана, виводиться один повідомлення, а якщо в нижній — інше. Це можна використовувати для зміни інтерфейсу залежно від положення миші.

let threshold = window.screen.height / 2;

document.addEventListener('mousemove', function(event) {
    if (event.screenY > threshold) {
        console.log("Курсор знаходиться в нижній частині екрана");
    } else {
        console.log("Курсор знаходиться у верхній частині екрана");
    }
});
автор: Bond

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

let lastY = 0;

document.addEventListener('mousemove', function(event) {
    let deltaY = event.screenY - lastY;
    console.log("Вертикальний рух:", deltaY > 0 ? "вниз" : "вгору");
    lastY = event.screenY;
});
автор: Bond

Користувач переміщує мишу по вертикалі, і висота блоку змінюється відповідно до поточного положення курсора відносно екрана. Висота блоку динамічно варіюється від 50 до 500 пікселів залежно від координати screenY. Це може бути корисно для створення інтуїтивно зрозумілих інтерфейсів, які реагують на рухи миші, як-от адаптивні блоки або панелі керування.

автор: Bond

Коментарі

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

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

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

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

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

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

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

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

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

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

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