Перейти к содержимому

Как узнать координаты курсора на экране

  • автор:

как получить координаты мыши js

Для получения координат мыши в JavaScript необходимо добавить событие «mousemove» на элемент, на котором нужно отслеживать движение мыши. Затем в обработчике события можно получить координаты мыши через объект события.

const elem = document.querySelector('.my-element'); // выбираем элемент, на котором будем отслеживать движение мыши elem.addEventListener('mousemove', function (event)  // добавляем обработчик события "mousemove" const x = event.clientX; // получаем координату X мыши const y = event.clientY; // получаем координату Y мыши console.log(`Координаты мыши: x=$x>, y=$y>`); // выводим координаты мыши в консоль >); 

В данном примере мы выбрали элемент с классом «my-element» и добавили на него обработчик события «mousemove». Внутри обработчика мы получили координаты мыши через объект события event.clientX (координата X) и event.clientY (координата Y). Затем мы вывели эти координаты в консоль.

Получить координаты с экрана

Нужно получить координаты курсора по нажатию мыши.
Координаты должны быть экранные а не привязаны к окну приложения.
Подскажите решение или модуль, с помощью которого можно решить эту задачу.

Отслеживать
73.5k 110 110 золотых знаков 38 38 серебряных знаков 55 55 бронзовых знаков
задан 2 июл 2023 в 9:04
Вадим Шиманаев Вадим Шиманаев
1 1 1 бронзовый знак

легкий способ, это через pyautogui, для получения координат курсора pyautogui.position(). Подробнее можешь почитать на pyautogui.readthedocs.io/en/latest/mouse.html.

2 июл 2023 в 10:10
2 июл 2023 в 10:12
Благодарю за помощь
2 июл 2023 в 10:21

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Как вариант можно использовать библиотеку pynput

from pynput import mouse def on_mouse_click(x, y, button, pressed): if button == mouse.Button.left and pressed: print(f'X: Y:') listener = mouse.Listener(on_click=on_mouse_click) listener.start() listener.join() 

Отслеживать
ответ дан 2 июл 2023 в 10:18
WTFisGoingOn WTFisGoingOn
1,389 1 1 золотой знак 6 6 серебряных знаков 26 26 бронзовых знаков

  • python
  • координаты
  • мышь
  • курсор
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.8.3130

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как определить координаты курсора мыши. Мне нужно узнать координаты курсора мыши на экране компьютера windows 7.

я как то даже об этом никогда и не думал зачем тебе это? не глонасс же ?

Попадалась как-то программка, она координаты выводила, «пробег» мышки и еще что-то.

MouseMeter вроде называлась она

Похожие вопросы

Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Определение координат нажатия на экране, при нажатии на кнопку

Беру координаты нажатия на экран из функции InputTouch в BP Player. При нажатии на экран в произвольном месте, получаю нормальные координаты.

Однако, если нажимаю на кнопку, получаю нулевые координаты. Что и понятно, т.к. кнопка идет поверх всех.

Мануалы перечитал, не нашел решения по которому можно было бы получить координаты. Причем мне нужны даже не столько координаты всего экрана, а координаты относительно кнопки.

Т.е. если у меня кнопка 64х64 пикселя, верхний левый имеет координаты 0х0, то мне нужно получить координаты нажатия на поверхности кнопки. Допустим в моем случае центр кнопки условно будет равен х=32 у=32.

#1
11:31, 2 окт 2020

Решил сделать кастомную кнопку. Не получается собрать воедино координаты, поэтому прошу помощи в отслеживании логики.

Получаю размеры экрана

1 | Определение координат нажатия на экране, при нажатии на кнопку

Вычисляю область для показа кнопки.
Беру размер экрана из переменной, раскладываю на float. Х делю на 2 т.к. показывать буду в правой части экрана. Так же отступаю справа от max X 20 пикселей в виде бортика и размер картинки, которая будет показываться.
С У поступаю следующим образом — сверху отступаю бортик. Снизу отступаю бортик+размер картинки.

Получаю рандомно 2D вектор для точки показа картинки.

2 | Определение координат нажатия на экране, при нажатии на кнопку

Вывожу на экран отладочную информацию в виде: координаты касания экрана (Location из InputTouch) * Координаты точки показа картинки.

Если всё сделано верно, то при нажатии на картинку, координаты касания должны быть немного больше координат показа картинки.

А вот что я получаю в итоге:

3 | Определение координат нажатия на экране, при нажатии на кнопку

Первая строчка TO

х = 709.000 y=400 z=1.0 — координаты касания, полученные из InputTouch (Location). Касаюсь точно в середине картинки.

X=1280 Y=720 — размер экрана из переменной, на основе которой делаются вычисления поля показа картинки, а так же точка показа картинки. Картинка имеет размеры 100х100.

Х=1006,342 У=553,756 — координаты из переменной, по которой происходит показ картинки.

Вторая строчка SetShot Х=1006,342 У=553,756 — координаты из переменной по которой показывается картинка, из функции показа картинки (для перепроверки).

Как итог — у меня что-то не правильно происходит. Что именно — я не понимаю. Логика и её исполнения верные, на мой взгляд. Почему не совпадают и так разняться данные — для меня вообще непонятно.

#2
12:47, 2 окт 2020

Ребят, пожалуйста, хоть какая то помощь нужна — это критичное место в проекте.

#3
14:33, 2 окт 2020

Может, начать с простого?
Вывести картинку 100х100 в координатах (0,0). Визуально убедиться, что она выводится там, где ожидается. Потыкать по ней посередине и по углам, посмотреть координаты касания. Потыкать по картинке и рядом с ней на одной высоте, посмотреть, как ведет себя Y. Аналогично с Х.
Возможно, на основании полученных данных можно будет сделать какие-то выводы.

#4
14:36, 2 окт 2020

Ptica
> Может, начать с простого?

Так пробовал. В нулевых выводится норм. Я уже ХЗ, что делать. Причем нет какой то логичной взаимосвязи в отличии координат.

#5
14:49, 2 окт 2020

Дали совет сделать отдельный виджет, и в нем отлавливать касания. Только проблема в том, что Event можно повесить только на кнопку. А если есть кнопка — координаты касания не отловить. Замкнутый круг какой то

#6
15:18, 2 окт 2020

А в противоположном углу — (1180,620) ? Тоже нормально?

#7
15:26, 2 окт 2020

Да, к сожалению. Нихера уже не понимаю

#8
17:00, 2 окт 2020

Есть viewport, по-моему именно он хранит все виджеты и может сказать какой из них включён (отображается на экране) значит можно всегда получить этот виджет и обратиться к нему, и из него обратиться к любому другому классу или вернуть какие то данные.

#9
17:17, 2 окт 2020

Salamandr
> из него обратиться к любому другому классу или вернуть какие то данные.

Ну вот я получаю размер экрана. Данные выходят правильные.
Определяю точку показа картинки тоже правильно. Картинка сравнится в нужной части экрана.

А вот какого хрена InputTouch выдает такие координаты — я не знаю

#10
17:23, 2 окт 2020

Mouse Input | Определение координат нажатия на экране, при нажатии на кнопку

Может надо через мышь?

#11
17:37, 2 окт 2020

У меня мобильное. Так что через тап по экрану только

  • Mephistopheles
  • Постоялец

#12
1:53, 3 окт 2020

defond
> Ребят, пожалуйста, хоть какая то помощь нужна — это критичное место в проекте.
А что ты вообще хочешь сделать? Весь кейс расскажи, что, зачем, куда

#13
10:41, 3 окт 2020

Mephistopheles
> А что ты вообще хочешь сделать? Весь кейс расскажи, что, зачем, куда

На экран пользователя, в определенной зоне (правая часть экрана) в рандомном месте должно появляться изображение перекрестия.

1 | Определение координат нажатия на экране, при нажатии на кнопку

Игрок должен на нее нажать. При этом нужно определить, насколько близко к центру произошло нажатие.

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

  • Mephistopheles
  • Постоялец

#14
12:59, 3 окт 2020

думаю ты разберешься что с этим делать:)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *