Я хочу разместить DIV в определенных координатах? Как я могу это сделать с помощью Javascript?
Как разместить DIV в определенных координатах?
Ответ 1
Script его свойства left
и top
как число пикселей от левого края и верхнего края соответственно. Он должен иметь position: absolute;
var d = document.getElementById('yourDivId');
d.style.position = "absolute";
d.style.left = x_pos+'px';
d.style.top = y_pos+'px';
Или сделайте это как функцию, чтобы вы могли прикрепить его к событию, например onmousedown
function placeDiv(x_pos, y_pos) {
var d = document.getElementById('yourDivId');
d.style.position = "absolute";
d.style.left = x_pos+'px';
d.style.top = y_pos+'px';
}
Ответ 2
Вам не нужно использовать Javascript для этого. Использование простого css:
div.blah {
position:absolute;
top: 0; /*[wherever you want it]*/
left:0; /*[wherever you want it]*/
}
Если вы чувствуете, что должны использовать javascript или пытаетесь сделать это динамически Используя JQuery, это влияет на все divs класса "blah":
$('.blah').css('position', 'absolute');
$('.blah').css('top', 0); //or wherever you want it
$('.blah').css('left', 0); //or wherever you want it
В качестве альтернативы, если вы должны использовать обычный старый javascript, вы можете захватить id
document.getElementById('myElement').style.position = "absolute";
document.getElementById('myElement').style.top = 0; //or whatever
document.getElementById('myElement').style.left = 0; // or whatever
Ответ 3
Ну, это зависит, если все, что вам нужно, это расположить div, а затем ничего больше, вам не нужно использовать java script для этого. Вы можете добиться этого только с помощью CSS. Важно то, какой контейнер вы хотите расположить свой div, если вы хотите поместить его относительно тела документа, тогда ваш div должен быть абсолютным и его контейнер не должен располагаться относительно или абсолютно, в этом случае ваш div будет расположен относительно контейнера.
В противном случае с Jquery, если вы хотите поместить элемент относительно документа, вы можете использовать метод offset().
$(".mydiv").offset({ top: 10, left: 30 });
если относительно смещения родительской позиции родительский относительный или абсолютный. затем используйте следующий...
var pos = $('.parent').offset();
var top = pos.top + 'no of pixel you want to give the mydiv from top relative to parent';
var left = pos.left + 'no of pixel you want to give the mydiv from left relative to parent';
$('.mydiv').css({
position:'absolute',
top:top,
left:left
});
Ответ 4
Вы также можете использовать фиксированное свойство css позиции.
<!-- html code -->
<div class="box" id="myElement"></div>
/* css code */
.box {
position: fixed;
}
// js code
document.getElementById('myElement').style.top = 0; //or whatever
document.getElementById('myElement').style.left = 0; // or whatever
Ответ 5
Вот правильно описанная статья, а также образец с кодом. JS-координаты
Согласно требованию. ниже - код, который, наконец, опубликован в этой статье. Необходимо вызвать функцию getOffset и передать элемент html, который возвращает значения top и слева.
function getOffsetSum(elem) {
var top=0, left=0
while(elem) {
top = top + parseInt(elem.offsetTop)
left = left + parseInt(elem.offsetLeft)
elem = elem.offsetParent
}
return {top: top, left: left}
}
function getOffsetRect(elem) {
var box = elem.getBoundingClientRect()
var body = document.body
var docElem = document.documentElement
var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop
var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft
var clientTop = docElem.clientTop || body.clientTop || 0
var clientLeft = docElem.clientLeft || body.clientLeft || 0
var top = box.top + scrollTop - clientTop
var left = box.left + scrollLeft - clientLeft
return { top: Math.round(top), left: Math.round(left) }
}
function getOffset(elem) {
if (elem.getBoundingClientRect) {
return getOffsetRect(elem)
} else {
return getOffsetSum(elem)
}
}
Ответ 6
Я обрезал это и добавил "px"; Очень хорошо работает.
function getOffset(el) {
el = el.getBoundingClientRect();
return {
left: (el.right + window.scrollX ) +'px',
top: (el.top + window.scrollY ) +'px'
}
}`enter code here`
to call: //Gets it to the right side
el.style.top = getOffset(othis).top ;
el.style.left = getOffset(othis).left ;