Vous pouvez simplement passer l' offsetobjet entier , ainsi le //setdeviendrait: $("#secondElementId").offset(offset)
mecampbellsoup
Hey! comment puis-je mettre en bas et à droite de div? il n'y a pas de propriété en bas à droite dans le décalage
JerryGoyal
34
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);
Cette réponse a été rejetée deux fois, sans explication. Dites pourquoi, si vous votez contre ma réponse. Merci!
KSev
2
C'est peut-être parce que vous utilisez l'interface utilisateur jQuery alors que l'OP ne demande que jQuery.
landau
7
souvent les gens vont trop loin avec le vote vers le bas. Ne supposons pas qu'une réponse plus large est inutile pour les autres, même si cela peut être une extension du PO. Ne me lancez pas sur le 'fermé car ce n'est pas une bonne question';)
atterri
@KSev - Je viens du futur. jQuery n'a toujours pas de setter sur .position... Voir: api.jquery.com/position
Koshinae
@Koshinae Cela fait partie de jQuery "UI". Voir le lien ci-dessus ou essayez jqueryui.com/position . De plus, si vous utilisez jQuery, vous pouvez envisager d'utiliser angularJS 2.0. Cependant, je suppose que vous maintenez le code hérité.
KSev
16
C'est faisable mais il faut savoir que l'utilisation offset()définit la position de l'élément par rapport au document:
offset (). left et css.left ne sont pas la même chose, ils peuvent ou non avoir les mêmes valeurs selon la structure de la page.
Kalle
J'ai attribué +1. Cela semble fonctionner très bien pour moi et c'est essentiellement la même chose que la réponse non choisie ci-dessous qui a plus de 85 votes.
Réponses:
la source
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:
la source
.position
... Voir: api.jquery.com/positionC'est faisable mais il faut savoir que l'utilisation
offset()
définit la position de l'élément par rapport au document:la source
Voici une option. C'est juste pour les coordonnées x.
la source
http://jsfiddle.net/va836/159/
la source