2011-11-06 13 views
23

me gustaría recuperar el desplazamiento del elemento a partir de sus propias coordenadas x centro.Cómo encontrar las coordenadas del centro x del elemento y la compensación de la ventana relacionada

¿cómo puedo hacerlo?

En realidad puedo encontrar la ventana de desplazamiento de un elemento, sino que recupera las coordenadas de la frontera del elemento de la siguiente manera:

var _position = $(this).offset(); 
+0

No estoy seguro de lo que está tratando de obtener, ¿la posición del medio de su elemento en lugar de su parte superior izquierda? Además, $ position no es una sintaxis correcta, de ser así, solo agregue el ancho/2 a la X y la altura/2 a la altura y estará bien. –

+0

@ShaiMishali Esa es la sintaxis correcta. Funciona perfectamente No es solo la convención nombrar variables como esa en JavaScript. –

Respuesta

51

Usted tiene que usar offset() para obtener la posición superior e izquierda, a continuación, añadir la mitad de los valores height() y width(). Eso da las coordenadas del centro.

var $this = $(this); 
var offset = $this.offset(); 
var width = $this.width(); 
var height = $this.height(); 

var centerX = offset.left + width/2; 
var centerY = offset.top + height/2; 
+0

¿sabes si el ancho() se ocupa de la regla de relleno de css? – sbaaaang

+6

La propiedad 'relleno 'no está incluida. Si desea incluir también el relleno, use '.outerWidth()'. –

3

Ahora esto puede hacerse a través nativa Javascript también:

let centerX = targetNode.offsetLeft + targetNode.offsetWidth/2; 
let centerY = targetNode.offsetTop + targetNode.offsetHeight/2; 

donde TARGETNODE es el elemento que desea obtener las coordenadas de su centro.

Cuestiones relacionadas