Come ottenere e impostare la posizione di un elemento con il .offset
metodo jQuery ?
Diciamo che ho un div layer1
e un altro layer2
. Come posso ottenere la posizione layer1
e impostare la stessa posizione su layer2
?
Come ottenere e impostare la posizione di un elemento con il .offset
metodo jQuery ?
Diciamo che ho un div layer1
e un altro layer2
. Come posso ottenere la posizione layer1
e impostare la stessa posizione su layer2
?
Risposte:
//Get
var p = $("#elementId");
var offset = p.offset();
//set
$("#secondElementId").offset({ top: offset.top, left: offset.left});
offset
oggetto, quindi //set
diventerebbe: $("#secondElementId").offset(offset)
Raccomando un'altra opzione. jQuery UI ha una nuova funzione di posizione che consente di posizionare gli elementi l'uno rispetto all'altro. Per la documentazione completa e la demo vedere: http://jqueryui.com/demos/position/#option-offset .
Ecco un modo per posizionare i tuoi elementi utilizzando la funzione di posizione:
var options = {
"my": "top left",
"at": "top left",
"of": ".layer1"
};
$(".layer2").position(options);
.position
... Vedi: api.jquery.com/position
È fattibile ma devi sapere che usando offset()
imposta la posizione dell'elemento rispetto al documento:
$('.layer1').offset( $('.layer2').offset() );
Ecco un'opzione. Questo è solo per le coordinate 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);