web-dev-qa-db-fra.com

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

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

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 sur layer2?

106
Denise
//Get
var p = $("#elementId");
var offset = p.offset();

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

Je recommande une autre option. jQuery UI a une nouvelle fonctionnalité de positionnement qui vous permet de positionner des é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 un moyen 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);
34
KSev

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

$('.layer1').offset( $('.layer2').offset() );
15
Amjad Masad

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

var div1Pos = $("#div1").offset();
var div1X = div1Pos.left;
$('#div2').css({left: div1X});
0
hillspro
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/

0
Chirag Suthar