Как найти XY-координаты элемента HTML (DIV) из JavaScript, если они не были явно заданы?Найти X/Y элемента HTML с JavaScript
ответ
Это может быть сложно в зависимости от браузера и версии. Я бы предложил использовать jQuery и плагин Position.
Большинство плагинов позиций теперь являются частью ядра jQuery. Таким образом, вы можете просто сделать $ (element) .offset ({relativeTo: "body"}) - и он даст вам верхнюю и левую части объекта относительно тела. – Sugendran 2008-10-01 23:32:43
Отлично, я не скачал jQuery через несколько месяцев, хорошо знаю, что они его закачали. – palehorse 2008-10-02 14:01:21
+1 для смещения jQuery – shan 2014-10-02 08:25:37
Я не уверен, для чего он нужен, и такие вещи всегда относительны (экран, окно, документ). Но когда мне нужно, чтобы понять это, я нашел этот сайт полезным: http://www.mattkruse.com/javascript/anchorposition/source.html
И я также обнаружил, что подсказке плагин кто-то сделал для JQuery были всякие интересные прозрения х, приемы у позиционирования (посмотрите на его видовом класс и базовую поддержку jQuery для него). http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/
Вы можете использовать библиотеку, такие как Prototype или JQuery, или вы можете использовать this handy function:
Он возвращает массив.
myPos = findPos(document.getElementById('something'))
x = myPos[0]
y = myPos[1]
function findPos(obj) {
var curleft = curtop = 0;
if (obj.offsetParent) {
curleft = obj.offsetLeft
curtop = obj.offsetTop
while (obj = obj.offsetParent) {
curleft += obj.offsetLeft
curtop += obj.offsetTop
}
}
return [curleft,curtop];
}
Вы должны указать атрибуцию quirksmode.org, эта функция выглядит очень знакомой. – pilsetnieks 2008-10-02 00:14:29
Вот как я это делаю:
// Based on: http://www.quirksmode.org/js/findpos.html
var getCumulativeOffset = function (obj) {
var left, top;
left = top = 0;
if (obj.offsetParent) {
do {
left += obj.offsetLeft;
top += obj.offsetTop;
} while (obj = obj.offsetParent);
}
return {
x : left,
y : top
};
};
Для чего это стоит, вот рекурсивная версия:
function findPos(element) {
if (element) {
var parentPos = findPos(element.offsetParent);
return [
parentPos.X + element.offsetLeft,
parentPos.Y + element.offsetTop
];
} else {
return [0,0];
}
}
Вы можете добавить два свойства в Element.prototype
получить верхний/левый любого элемента.
window.Object.defineProperty(Element.prototype, 'documentOffsetTop', {
get: function() { return this.offsetTop + (this.offsetParent ? this.offsetParent.documentOffsetTop : 0); }
});
window.Object.defineProperty(Element.prototype, 'documentOffsetLeft', {
get: function() { return this.offsetLeft + (this.offsetParent ? this.offsetParent.documentOffsetLeft : 0); }
});
Вот демо сравнивая результаты с JQuery-х offset().top
и .left
: http://jsfiddle.net/ThinkingStiff/3G7EZ/
- 1. Javascript jQuery Как найти координаты элемента html?
- 2. Получить координаты XY элемента `img`
- 3. Вращение элемента HTML/Javascript
- 4. Как найти высоту HTML-элемента в node.js?
- 5. Как найти центр текста внутри элемента html
- 6. Переписывание содержимого элемента HTML с использованием JavaScript
- 7. Добавить класс элемента HTML с использованием JavaScript
- 8. Невозможно изменить цвет HTML элемента с JavaScript
- 9. Как изменить идентификатор элемента HTML с JavaScript?
- 10. Выбор сложного HTML-элемента с использованием JavaScript
- 11. Изменить HTML имя элемента с помощью JavaScript
- 12. access html значение элемента javascript
- 13. JavaScript/HTML: события элемента проводки
- 14. Html/Javascript: Добавить атрибут элемента управления HTML
- 15. jQuery, как правильно найти тип элемента родительского элемента в HTML
- 16. XY Настроение с Java
- 17. Javascript строкового представления HTML элемента
- 18. Как найти xy происхождение UIButton в Xcode
- 19. Изменение динамического элемента html-элемента с помощью Javascript
- 20. Как найти фактическую ширину элемента в javascript
- 21. Как найти идентификатор элемента в таблице html с помощью jquery
- 22. Найти замену html с помощью javascript
- 23. XY Прокрутка HTML-таблицы с вертикально фиксированным заголовком
- 24. Как найти конкретный файл для элемента HTML
- 25. Как найти желаемый XPath для элемента HTML?
- 26. HTML-элемент ввода тега с именем элемента массива с JavaScript
- 27. Найти индекс дочернего элемента в разметке HTML
- 28. Я не могу найти xpath элемента html
- 29. perl Найти меняющийся идентификатор элемента с помощью HTML :: Treebuilder
- 30. Найти Xpath элемента в содержание страницы HTML с использованием Java
закрыт в двух экземплярах в соответствии с http://meta.stackexchange.com/questions/147643/should-i-vote-to- close-a-duplicate-question-even-but-its-much-newer-and-ha – user123444555621 2014-08-25 06:47:38