105 votes

Obtenir et définir la position avec jQuery .offset()

Comment obtenir et définir la position d'un élément avec jQuery .offset méthode ?

Disons que j'ai un div layer1 et un autre layer2 . Comment puis-je obtenir la position de layer1 et définir la même position pour layer2 ?

188voto

Steve Points 16704
//Get
var p = $("#elementId");
var offset = p.offset();

//set
$("#secondElementId").offset({ top: offset.top, left: offset.left})

34voto

KSev Points 715

Je vous recommande une autre option. jQuery UI a une nouvelle fonctionnalité de position qui vous permet de positionner les éléments les uns par rapport aux autres. Pour une documentation complète et une démonstration, voir : http://jqueryui.com/demos/position/#option-offset .

Voici une façon de positionner vos éléments à l'aide de la fonction de positionnement :

var options = {
    "my": "top left",
    "at": "top left",
    "of": ".layer1"
};
$(".layer2").position(options);

16voto

Amjad Masad Points 2294

C'est faisable mais vous devez savoir qu'en utilisant offset() définit la position de l'élément par rapport au document :

$('.layer1').offset( $('.layer2').offset() );

0voto

hillspro Points 142

Voici une option. C'est juste pour les coordonnées x.

var div1Pos = $("#div1").offset();
var div1X = div1Pos.left;
$('#div2').css({left: div1X});

0voto

Chirag Suthar Points 1
var redBox = $(".post");

var greenBox = $(".post1");

var offset = redBox.offset();

$(".post1").css({'left': +offset.left});
$(".post1").html("Left :" +offset.left);

http://jsfiddle.net/va836/159/

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