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 ?

Author: Curt, 2011-07-23

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';
}
 128
Author: Michael Berkowski,
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
 31
Author: dave,
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
});
 7
Author: Ehtesham,
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
 2
Author: Pankaj Bisht,
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)
    }
}
 0
Author: Sanket Patel,
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 ; 
 0
Author: Greggo,
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