Comment obtenir et définir la position d'un élément avec la .offset
méthode jQuery ?
Disons que j'ai un div layer1
et un autre layer2
. Comment puis-je obtenir la position layer1
et définir la même position layer2
?
Comment obtenir et définir la position d'un élément avec la .offset
méthode jQuery ?
Disons que j'ai un div layer1
et un autre layer2
. Comment puis-je obtenir la position layer1
et définir la même position layer2
?
Réponses:
//Get
var p = $("#elementId");
var offset = p.offset();
//set
$("#secondElementId").offset({ top: offset.top, left: offset.left});
offset
objet entier , ainsi le //set
deviendrait: $("#secondElementId").offset(offset)
Je 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 position:
var options = {
"my": "top left",
"at": "top left",
"of": ".layer1"
};
$(".layer2").position(options);
.position
... Voir: api.jquery.com/position
C'est faisable mais il faut savoir que l'utilisation offset()
définit la position de l'élément par rapport au document:
$('.layer1').offset( $('.layer2').offset() );
Voici une option. C'est juste pour les coordonnées x.
var div1Pos = $("#div1").offset();
var div1X = div1Pos.left;
$('#div2').css({left: div1X});
var redBox = $(".post");
var greenBox = $(".post1");
var offset = redBox.offset();
$(".post1").css({'left': +offset.left});
$(".post1").html("Left :" +offset.left);