2011-07-03 3 views
0

Как получить координаты элемента после события onclick? Мне нужно разместить наложение чуть ниже значка, который был нажат.Получение координат элемента

Есть ли такая встроенная функция, предоставляемая Javascript, а не ручная запись функции для этого?

+2

Это та область, которая может быть более сложным, чем это кажется. Я бы рекомендовал использовать хорошую библиотеку, чтобы сэкономить ваше время и проблемы, будь то [jQuery] (http://jquery.com), [Prototype] (http://prototypejs.org), [YUI] (http : //developer.yahoo.com/yui/), [Закрытие] (http://code.google.com/closure/library) или [любой из нескольких других] (http://en.wikipedia.org/ вики/List_of_JavaScript_libraries). Они также будут делать много других вещей, чтобы сгладить различия браузеров, обеспечить функциональность утилиты и позволить вам сосредоточиться на том, что вы на самом деле пытаетесь построить. –

+1

Чтобы ответить на прямой вопрос: нет, такой встроенной функции нет. Вы должны использовать объект 'event' в каком-либо обработчике события, чтобы извлечь позицию элемента. –

+1

@ T.J. Согласно истории вопроса, OP использует PrimeFaces, который поставляется с jQuery и YUI. – BalusC

ответ

0

В YUI я использую функцию getXY(), которая возвращает абсолютную позицию страницы любого объекта в DOM. Источник этой функции в YUI2 находится здесь: http://developer.yahoo.com/yui/docs/Dom.js.html.

В jQuery, похоже, вы использовали бы метод .offset() объекта jQuery: http://api.jquery.com/offset/.

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

0

Попробуйте это:

function getGlobalPos(el) { 
    var p = {x:0,y:0}; 
    while (el) { 
    p.x += el.offsetLeft; 
    p.y += el.offsetTop; 
    el = el.offsetParent; 
    } 
    return p; 
} 
Смежные вопросы