Jak ustawić DIV w określonych współrzędnych?
Chcę ustawić DIV w określonej współrzędnych ? Jak mogę to zrobić za pomocą Javascript ?
6 answers
Zapisz jego właściwości left
i top
jako liczbę pikseli odpowiednio od lewej krawędzi i górnej krawędzi. Musi mieć position: absolute;
var d = document.getElementById('yourDivId');
d.style.position = "absolute";
d.style.left = x_pos+'px';
d.style.top = y_pos+'px';
Lub zrób to jako funkcję, aby można było dołączyć go do zdarzenia, takiego jak 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';
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-15 14:16:10
Nie musisz używać Javascript, aby to zrobić. Użycie zwykłego starego css:
div.blah {
position:absolute;
top: 0; /*[wherever you want it]*/
left:0; /*[wherever you want it]*/
}
Jeśli uważasz, że musisz użyć javascript, lub próbujesz to zrobić dynamicznie Używając JQuery, wpływa to na wszystkie div klasy "blah":
var blahclass = $('.blah');
blahclass.css('position', 'absolute');
blahclass.css('top', 0); //or wherever you want it
blahclass.css('left', 0); //or wherever you want it
Alternatywnie, jeśli musisz użyć zwykłego starego javascript, możesz pobrać przez id
var domElement = document.getElementById('myElement');// don't go to to DOM every time you need it. Instead store in a variable and manipulate.
domElement.style.position = "absolute";
domElement.style.top = 0; //or whatever
domElement.style.left = 0; // or whatever
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-14 09:12:18
Cóż to zależy czy wszystko co chcesz to pozycjonowanie div a potem nic więcej, nie musisz do tego używać java script. Możesz to osiągnąć tylko za pomocą CSS. Ważne jest to, jaki kontener chcesz ustawić, jeśli chcesz go ustawić względem treści dokumentu, to Twój div musi być umieszczony bezwzględnie, a jego kontener nie może być umieszczony relatywnie lub absolutnie, w takim przypadku twój div będzie umieszczony względem kontenera.
Inaczej z Jquery jeśli chcesz umieścić element względem dokumentu, możesz użyć metody offset ().
$(".mydiv").offset({ top: 10, left: 30 });
Jeśli względny do przesunięcia pozycji rodzica, to rodzic względny lub absolutny. następnie użyj następujących...
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
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-16 12:50:23
Możesz również użyć właściwości position fixed 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-15 06:14:49
Tutaj jest poprawnie opisany artykuł, a także próbka z kodem. współrzędne JS
Zgodnie z wymaganiami. poniżej znajduje się kod, który jest zamieszczony w końcu w tym artykule. Należy wywołać funkcję getOffset i przekazać element html, który zwraca swoje wartości top i left .
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)
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-02 11:47:33
Wstawiłem to i dodałem 'px'; Działa bardzo dobrze.
function getOffset(el) {
el = el.getBoundingClientRect();
return {
left: (el.right + window.scrollX ) +'px',
top: (el.top + window.scrollY ) +'px'
}
}
to call: //Gets it to the right side
el.style.top = getOffset(othis).top ;
el.style.left = getOffset(othis).left ;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-21 16:31:22