Координаты мыши в Internet Explorer - PullRequest
0 голосов
/ 14 января 2009

У меня есть карта для моей игры, у меня есть скрипт, который одним щелчком мыши отображает предупреждение о координатах мыши на карте.

Масштаб карты составляет 1 единицу на 2,5 пикселя, а карта начинается с -600 600 и снижается до 600 1700. Таким образом, я не могу просто выбросить пиксели мыши.

Я заработал (и был очень доволен), но, увы, IE (6) имеет проблемы. Я сузил его до IE не правильно получить параметры прокрутки.

Вот соответствующий код, который глючит, но полный код находится в http://woarl.com/map/ieMap.html

tempX = event.clientX + document.body.scrollLeft;
tempY = event.clientY + document.body.scrollTop;

Спасибо за любую помощь

Ответы [ 2 ]

4 голосов
/ 14 января 2009

Попробуйте:

tempX = event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft);
tempY = event.clientY + (document.documentElement.scrollTop || document.body.scrollTop);

Проверил вашу страницу, и DOCTYPE переводит IE в стандартный режим, поэтому нужные вам свойства scrollXXX находятся на document.documentElement, а не document.body.

2 голосов
/ 14 января 2009

Расположение координат мыши ужасно, поскольку в спецификациях не указано, должны ли они, помимо прочего, быть относительно документа или области просмотра. В нижней части http://www.quirksmode.org/js/events_properties.html.

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

В частности, похоже, что вам нужно добавить document.documentElement.scroll(Left|Top), а также параметры event и document.body.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...