получение координат X и Y для элемента div
Я пытался сделать javascript, чтобы получить координаты X и Y div
элемент. После некоторых попыток я придумал некоторые цифры, но я не уверен, как проверить точное местоположение их(сценарий возвращает X как 168 и Y как 258), я запускаю сценарий с разрешением экрана 1280 x 800. Это скрипт, который я использую для получения этого результата:
function get_x(div) {
var getY;
var element = document.getElementById("" + div).offsetHeight;
var get_center_screen = screen.width / 2;
document.getElementById("span_x").innerHTML = element;
return getX;
}
function get_y(div) {
var getY;
var element = document.getElementById("" + div).offsetWidth;
var get_center_screen = screen.height / 2;
document.getElementById("span_y").innerHTML = element;
return getY;
}
теперь вопрос. Было бы разумно предположить, что это точные координаты возвращается функцией или есть легко просто создать что-то на этом месте, чтобы увидеть, что именно это такое?
и, наконец, как я буду делать это div
переместить элемент? Я знаю, что должен использовать mousedown
обработчик событий и некоторое время, чтобы продолжать перемещать элемент, Но да, любые советы/подсказки очень ценятся, моя самая большая проблема заключается в том, как получить это во время выполнения цикла.
5 ответов
здесь простой способ получить различную информацию о положении элемента html:
var my_div = document.getElementById('my_div_id');
var box = { left: 0, top: 0 };
try {
box = my_div.getBoundingClientRect();
}
catch(e)
{}
var doc = document,
docElem = doc.documentElement,
body = document.body,
win = window,
clientTop = docElem.clientTop || body.clientTop || 0,
clientLeft = docElem.clientLeft || body.clientLeft || 0,
scrollTop = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop,
scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
top = box.top + scrollTop - clientTop,
left = box.left + scrollLeft - clientLeft;
безусловно, самый простой способ получить абсолютное положение экрана элемента -getBoundingClientRect
.
var element = document.getElementById('some-id');
var position = element.getBoundingClientRect();
var x = position.left;
var y = position.top;
// Et voilà!
имейте в виду, что координаты Не включать смещение прокрутки документа.
вам нужно найти позицию, используя позицию родителя тоже. Здесь есть очень хороший учебник:http://www.quirksmode.org/js/findpos.html
Я думаю, вы можете использовать jQuery .offset ()http://api.jquery.com/offset/
данный элемент...
<div id="abc" style="position:absolute; top:350px; left:190px;">Some text</div>
Если элемент находится в основной документ вы можете получить координаты DIV С...
var X=window.getComputedStyle(abc,null).getPropertyValue('left');
var Y=window.getComputedStyle(abc,null).getPropertyValue('top');
Если элемент находится в окне iframe вы можете получить координаты DIV С...
var X=FrameID.contentWindow.getComputedStyle(abc,null).getPropertyValue('left');
var Y=FrameID.contentWindow.getComputedStyle(abc,null).getPropertyValue('top');
NB: возвращаемые значения должны быть в формате "190px"и " 350px".