2011-08-17 15 views

Respuesta

20

¿Quieres encontrar el valor de la propiedad CSS right?

$('#foo').css('right'); 

En la llanura Javascript:

document.getElementById('foo').style.right; 

Pero, si usted quiere encontrar la calcula la distancia desde el borde derecho de un elemento al borde derecho de otro, entonces tendrá para hacer eso mismo, la combinación de .position().left y .offsetWidth

+0

gracias solo solicité el valor correcto que se calcula previamente.Gracias – Xavier

+3

Me resulta frustrante que JavaScript (y jQuery) no hagan el trabajo de calcular la posición correcta en su nombre. Parece algo muy obvio querer hacer, y sería bueno si el marco te permitiera abstraerse de tener que calcularlo por ti mismo. – cartbeforehorse

+0

@nickf No veo cómo '.position(). Left' y' .offsetWidth' pueden darte el equivalente de un '.position(). Right' hipotético. Para calcular el valor de un '.position(). Right' * relativo al desplazamiento parent *, tendría que conocer el' .offsetWidth' del elemento actual ** y ** de dicho elemento primario desplazado, siendo este último parte que falta. ¿Me estoy perdiendo de algo? – avernet

2

se puede tratar .css

.css("right");

+0

Eso solo funciona si" right "ya está configurado – user3152459

3
$(document).width() - ($('#elem').offset().left + $('#elem').width()); 

debe conseguir que el espacio en el lado derecho del elemento que se puede establecer a continuación como el valor de la propiedad 'derecha' de la posición del elemento;

0

El valor CSS solo es válido si se establece mediante estilo o $ .css().

Pero si necesita obtener la posición correcta de un objeto, debe hacerlo utilizando javascript/jquery.

Aunque hay algunas soluciones válidas, es importante tener en cuenta que $ .fn.width() no ocupa el relleno y los bordes en la cuenta. Por lo tanto, es mejor usar outerWidth().

Ejemplo:

$(document).width() - ($('#elem').offset().left + $('#elem').outerWidth()); 

Incluso puede crear una función $ .fn para obtener el valor:

$.fn.right = function() { 
    return $(document).width() - (this.offset().left + this.outerWidth()); 
} 

y luego usarlo:

$('#elem').right(); 
0

Como se ha señalado por @ Avernet en los comentarios, el equivalente de un hipotético .position(). right sería una expresión como esta:

$('#foo').offsetParent().width() - ($('#foo').position().left + $('#foo').width()); 
Cuestiones relacionadas