2012-06-05 3 views

ответ

3

Вам не нужен плагин на самом деле, просто кусок JavaScript + знание некоторых внутренних элементов Firebug.

Вы можете найти в this article как получить абсолютные координаты элемента DOM. Каждый элемент DOM имеет свойства .offsetLeft .offsetTop .offsetParent, которые определяют положение относительно какого-либо другого элемента DOM (offsetParent). Элемент в верхней части иерархии имеет значение offsetParent = null. Вы можете перемещать элементы и их offsetParents вверх по иерархии, чтобы найти абсолютные координаты, заданные элементом.

Код скопирован с этой страницы:

var findpos = function findPos(obj) { 
    var curleft = curtop = 0; 
    if (obj.offsetParent) { 
     do { 
     curleft += obj.offsetLeft; 
     curtop += obj.offsetTop; 
     } while (obj = obj.offsetParent); 
     return [curleft,curtop]; 
    } 
} 

(вставьте его в Firebug, и тогда у вас есть findpos функции, доступные в консоли).

Для большинства простейших случаев у вас будет offsetParent = <body>, у которого есть нулевые смещения (как на скриншотах), поэтому вам не нужно ничего добавлять к offsetLeft и offsetTop. Однако, если происходит относительное позиционирование, вы должны пересечь родителей.

Когда вы выбираете элемент в Firebug, тогда он доступен как $0 в консоли Firebug.

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

Firebug - finding absolute coords of a node

легко получить абсолютные COORDS любого элемента.

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

Смежные вопросы