91 votes

Comment obtenir le bon décalage d'un élément? - jQuery

C'est probablement une question très simple, mais comment puis-je obtenir le bon décalage d'un élément dans jQuery?

Je peux faire:

 $("#whatever").offset().left;
 

et c'est valide.

Mais il semble que:

 $("#whatever").offset().right 
 

est indéfini.

Alors, comment peut-on accomplir cela dans jQuery?

Merci!!

166voto

Brendon Crawford Points 507

Alex, Gary:

Comme demandé, voici mon commentaire posté comme réponse:

 var rt = ($(window).width() - ($whatever.offset().left + $whatever.outerWidth()));
 

Merci de me le faire savoir.

29voto

jAndy Points 93076
 var $whatever        = $('#whatever');
var ending_right     = ($(window).width() - ($whatever.offset().left + $whatever.outerWidth()));
 

Référence: .outerWidth ()

15voto

Greg Points 3104

Je comprends peut-être mal votre question, mais le décalage est censé vous donner deux variables: une horizontale et une verticale. Ceci définit la position de l'élément. Donc, ce que vous recherchez, c'est:

 $("#whatever").offset().left
 

et

 $("#whatever").offset().top
 

Si vous avez besoin de savoir où se trouve la bonne frontière de votre élément, utilisez alors:

 $("#whatever").offset().left + $("#whatever").outerWidth()
 

9voto

cdZ Points 51

Juste un ajout à ce que Greg a dit:

$("#que ce soit").offset().gauche + $("#que ce soit").outerWidth()

Ce code permettra d'avoir la bonne position par rapport au côté gauche. Si l'intention était d'obtenir le côté droit de la position par rapport à la droite (comme lors de l'utilisation du CSS right de la propriété), puis un ajout au code comme suit:

$("#parent_container").innerWidth() - ($("#que ce soit").offset().gauche + $("#que ce soit").outerWidth())

Ce code est utile dans les animations où vous devez placer le côté droit fixe d'ancrage lorsque vous ne pouvez pas d'abord définir l' right de la propriété en CSS.

5voto

Gary Points 1655

Brendon Crawford avait la meilleure réponse ici (en commentaire), alors je vais le déplacer vers une réponse jusqu'à ce qu'il le fasse (et peut-être développer un peu).

 var offset = $('#whatever').offset();

offset.right = $(window).width() - (offset.left + $('#whatever').outerWidth(true));
offset.bottom = $(window).height() - (offset.top + $('#whatever').outerHeight(true));
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X