style bootstrap attribute javascript html coordinates

javascript - attribute - tooltip html bootstrap



¿Cómo posicionar un DIV en coordenadas específicas? (6)

Quiero posicionar un DIV en coordenadas específicas? ¿Cómo puedo hacer eso usando Javascript?


Aquí hay un artículo correctamente descrito y también una muestra con código. Coordenadas JS

Según el requisito a continuación está el código que está publicado al final en ese artículo. Necesita llamar a la función getOffset y pasar el elemento html que devuelve sus valores superiores e izquierdos .

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) } }


Cribré esto y agregué el ''px''; Funciona muy bien

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 ;


No tiene que usar Javascript para hacer esto. Usando CSS simple:

div.blah { position:absolute; top: 0; /*[wherever you want it]*/ left:0; /*[wherever you want it]*/ }

Si sientes que debes usar javascript, o estás tratando de hacer esto dinámicamente usando JQuery, esto afecta a todos los divs de la clase "blah":

$(''.blah'').css(''position'', ''absolute''); $(''.blah'').css(''top'', 0); //or wherever you want it $(''.blah'').css(''left'', 0); //or wherever you want it

Alternativamente, si debe usar el antiguo javascript normal, puede obtener el ID

document.getElementById(''myElement'').style.position = "absolute"; document.getElementById(''myElement'').style.top = 0; //or whatever document.getElementById(''myElement'').style.left = 0; // or whatever


También puede usar la propiedad css de posición fija.

<!-- 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


bueno, depende si todo lo que quiere es posicionar un div y nada más, no necesita usar el script java para eso. Puedes lograr esto solo por CSS. Lo que importa es en relación a qué contenedor desea colocar su div, si desea colocarlo en relación con el cuerpo del documento, entonces su div debe estar posicionado en forma absoluta y su contenedor no debe colocarse relativamente o absolutamente, en ese caso su div se colocará relativo al contenedor.

De lo contrario, con Jquery, si desea colocar un elemento relativo al documento, puede usar el método offset ().

$(".mydiv").offset({ top: 10, left: 30 });

si es relativo a la posición padre desplazada, el pariente relativo o absoluto. luego usa siguiente ...

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 });


Script sus propiedades left y top como el número de píxeles desde el borde izquierdo y el borde superior, respectivamente. Debe tener position: absolute;

var d = document.getElementById(''yourDivId''); d.style.position = "absolute"; d.style.left = x_pos+''px''; d.style.top = y_pos+''px'';

O hazlo como una función para que puedas adjuntarlo a un evento como 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''; }