2012-02-15 14 views
7

¿Hay alguna forma de obtener las coordenadas del cuadro delimitador de un elemento DOM con Javascript?¿Hay alguna forma de obtener el cuadro delimitador (en píxeles) de un elemento DOM?

Obviamente puedo calcularlo desde varias propiedades de CSS: width, height, y así sucesivamente.

Lo estoy preguntando porque hay muchas otras plataformas gráficas que ofrecen este método. Por ejemplo, aparentemente se puede hacer en XUL según this post, que describe un método getBoundingClientRect().

(Mi objetivo es comprobar si los dos elementos se superponen.)

+0

¿Es esta una entrada duplicada o son estos mensajes no soluciones a su pregunta? - http://stackoverflow.com/questions/4230029/jquery-javascript-collision-detection - http://stackoverflow.com/questions/2440377/javascript-collision-detection Cuando leí esto, sonaron similares. Espero que esos ayuden. – shanabus

Respuesta

1

Digamos que el elemento DOM tenía el ID myElement.

document.getElementById("myElement").offsetLeft; //Left side of box 
document.getElementById("myElement").offsetTop; //Top side of box 
document.getElementById("myElement").offsetLeft 
    + document.getElementById("myElement").offsetWidth; //Right side of box 
document.getElementById("myElement").offsetTop 
    + document.getElementById("myElement").offsetHeight; //Bottom side of box 

Para la parte inferior y derecha lados, el código básicamente añade la anchura o la altura de la caja de delimitación en el lado izquierdo o superior.

si se quería, se podría definir document.getElementById("myElement") de una vez y utilizar la referencia, de la siguiente manera:

var myElement = document.getElementById("myElement"); 
myElement.offsetLeft; //Left side of box 
myElement.offsetTop; //Top side of box 
myElement.offsetLeft + myElement.offsetWidth; //Right side of box 
myElement.offsetTop + myElement.offsetHeight; //Bottom side of box 
Cuestiones relacionadas