/ Published in: JavaScript
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
método a través del cual se puede obtener la posición y las dimensiones de cualquier elemento html (div, table, img, etc.) que haya en el documento. Estas coordenadas son siempre relativas al documento, es decir, que si tenemos un div dentro de otro div y pedimos las coordenadas del div "hijo", obtendremos dichas coordenadas respecto al documento, y no respecto al div padre. Normalmente la gente se vuelve loca intentando obtener las coordenadas de la forma que estoy proponiendo ya que siempre las obtienen de la segunda forma, es decir, relativas al elemento padre, y entonces deben meterse en una serie de bucles para conseguir llegar al document. Bueno, pues esta es la solución: La función irá en el propio documento o, como siempre aconsejo, en un js global que se incluirá en las páginas en las que lo necesitemos: getDimensions = function(oElement) { var x, y, w, h; x = y = w = h = 0; if (document.getBoxObjectFor) { // Mozilla var oBox = document.getBoxObjectFor(oElement); x = oBox.x-1; w = oBox.width; y = oBox.y-1; h = oBox.height; } else if (oElement.getBoundingClientRect) { // IE var oRect = oElement.getBoundingClientRect(); x = oRect.left-2; w = oElement.clientWidth; y = oRect.top-2; h = oElement.clientHeight; } return {x: x, y: y, w: w, h: h}; } En la página html: Deberemos pasar a la función como parámetro el elemento del que queremos saber las coordenadas. Ejemplo para obtener las coordenadas en el documento de un div: <div id="myDiv" style="position:absolute;top:190px;left:260px"></div> var myDiv = document.getElementById('myDiv'); var xDiv = getDimensions(myDiv).x; var yDiv = getDimensions(myDiv).y; De esta forma la variable xDiv valdrá 260 y la variable yDiv valdrá 190, y son las coordenadas exactas de la posición del elemento en el documento.