Как отслеживать положение мыши при загрузке страницы, а также при перемещении мыши?

Я отслеживаю движения мыши, используя следующий JavaScript:

var mouseX = 0;
var mouseY = 0;

document.onmousemove = function (e) {
    mouseX = e.clientX;
    mouseY = e.clientY;
}

Моя проблема в том, что если мышь не была перемещена с момента загрузки страницы, значения mouseX и mouseY равны 0. Как я могу получить значения мыши при загрузке страницы, а также когда мышь переехал?

Ответ 1

Браузер не знает, где находится мышь, пока он не переместится.

Это сложнее, чем просто "получить позицию курсора". Что делать, если нет мыши (планшета) или что, если мышь не находится над окном браузера?

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

Перейдите на какой-либо сайт, наведите указатель мыши на ссылку, которая имеет эффект наведения (например, подчеркивание), обновите страницу (не перемещая курсор), и вы увидите, что даже если ваш курсор зависает по ссылке, t получить обработку наведения, пока вы не переместите курсор.

К сожалению, это проблема на уровне браузера, а не проблема с javascript.

Ответ 2

Вы можете определить событие mouseover для документа, чтобы поймать первое взаимодействие с мышью при загрузке страницы.