Я пытаюсь получить координаты экрана (то есть, относительно верхнего левого угла экрана) элемента в окне браузера. Легко получить размер и положение окна (screenX, screenY), и легко (с jQuery) получить смещение элемента ($ ('элемент') .offset () .left).
Однако я должен знать, сколько пикселей это от элемента полностью к углу экрана. Я нашел некоторые вещи, которые, кажется, характерны для IE, но я хотел бы, чтобы это работало в как можно большем количестве браузеров.
window.screenX / Y
не поддерживаются в IE. Но для других браузеров положение приблизительно равно:
var top = $("#myelement").offset().top + window.screenY;
var left = $("#myelement").offset().left + window.screenX;
Точное положение зависит от того, какие панели инструментов видны. Вы можете использовать свойства outer / innerWidth
и outer / innerHeight
объекта window
, чтобы немного приблизиться.
IE не предоставляет много свойств окна, но, как ни странно, объект события щелчка предоставит вам местоположение щелчка на экране. Итак, я полагаю, у вас может быть страница калибровки, которая просит пользователя «щелкнуть красную точку» и обработать событие с помощью
function calibrate(event){
var top = event.screenY;
var left = event.screenX;
}
Или, возможно, использовать события mouseenter / leave
, используя координаты этого события для калибровки .Хотя у вас возникнут проблемы с определением, введена ли мышь слева, справа, сверху или снизу.
Конечно, как только они переместят экран, вам придется откалибровать его заново.
Подробнее о совместимости свойств браузеров см. Таблицы объектной модели PPK .
Я не думаю, что это возможно.
Координаты элемента относятся к левому верхнему углу отображаемой страницы.
Координаты окна указаны относительно экрана.
Насколько мне известно, нет ничего, что связывало бы верхний левый угол отображаемой страницы с верхним левым углом окна . Так что нет никакого способа учесть границы, полосы прокрутки, хром и т. Д. Так что я думаю, что вы погрязли в этом.