2012-06-01 23 views

Respuesta

18

Uso getBoundingClientRect: http://ejohn.org/blog/getboundingclientrect-is-awesome/

Por ejemplo:

var div = document.getElementById("yourDiv"); 
var rect = div.getBoundingClientRect(); 
alert("Coordinates: " + rect.left + "px, " + rect.top + "px"); 

Recuerde que getBoundingClientRect da las coordenadas relativos a la ventana gráfica actual, lo que significa que si usted quiere saber las coordenadas relativas a la document.body, tiene que agregar las cantidades de desplazamiento horizontal y vertical (document.documentElement.scrollLeft o document.body.scrollLeft para Firefox, y .scrollTop por supuesto).

1

Si entiendo, que desea hacer esto http://www.quirksmode.org/js/findpos.html

+0

Ah, sí. Buena lectura si quieres apoyar a clientes mayores. Esa página necesita ser actualizada, sin embargo. – MaxArt

+0

¿De verdad? ¿Alguna posibilidad de que puedas explicar lo que falta allí? – Jakub

+1

Como señalé en mi respuesta, 'getBoundingClientRect' es una gran herramienta y es compatible con todos los principales navegadores. Realmente simplifica las cosas. No es que el viejo código de quirksmode.org ya no funcione ... Es más lento. – MaxArt

1

Los ejemplos muestran abajo cómo recuperar la ClientRect de un elemento HTML

# first tag link of this page 
document.getElementsByClassName('post-taglist')[0].children[0].getClientRects()[0] 
# question div 
document.getElementById('question').getClientRects()[0] 

Con ella se tiene acceso a derecha, de arriba, la altura, ancho, atributos izquierdo y fondo.

+0

'getClientRects' es exagerado, no necesita saber todo eso. La razón principal para obtener todas las rectas es si desea conocer la posición y el tamaño de las líneas de texto. – MaxArt

+0

NM. Perdió algo que MaxArt escribió en otro lugar. –

Cuestiones relacionadas