2011-01-06 6 views
5

Ich bin ein Neuling zu jQuery. Könnte jemand bitte dies beantworten?jQuery .offset Einstellung y Wert

Ich weiß, dass ich Schicht1 mit der folgenden Codezeile auf die Position von Schicht2 setzen werde.

$("#layer1").offset($("#layer2").offset()); 

Wie kann ich nur den y-Wert einstellen? Da bin ich mir nicht sicher.

Dank

Antwort

0

Just/verwenden die CSS-Top-Eigenschaft

$("#layer1").css("top",$("#layer2").css("top")); 
0
$("#layer1").css({ 
    'top': $("#layer2").offset().top 
}); 

EDIT .top/.left Setter zu sein scheint.
EDITv2 der Offset kann eingestellt werden, muss aber durch .offset() -Methode erfolgen.

7

Die jQuery-Dokumentation .offest() lautet:

.Offset() gibt ein Objekt, das die Eigenschaften oben und links enthält.

Mit diesem Wissen können Sie Folgendes erreicht:

var offset = $("#layer2").offset(); 
$("#layer1").css({ 
    'top' : offset.top, 
    'left': offset.left 
}); 

Oder man sie individuell einstellen können, pro Ihre Anforderung.

$("#layer1").css('top', offset.top); // or... 
$("#layer1").css('left', offset.left); 

Schließlich, da Sie nur einen einzigen Wert benötigen (oben), ist der Offset Overkill; es ist teurer als du brauchst. Verwenden Sie stattdessen das folgende optimierte Snippet.

var top = $('#layer2').css('top'); 
$('#layer1').css('top', top); 
0

Nach http://api.jquery.com/offset/

$("p:last").offset({ top: 10, left: 30 }); 

verwendet werden. Als solche sollten Sie in der Lage sein zu entfernen, was Sie nicht wollen.

0

Verwenden offset.top und offset.left - das sind die x- und y ist .. Offset() in sich zurückkehr beide x und y (oder oben und links)

+0

Danke für die Info! – Denise

+0

Aus Gründen der Übersichtlichkeit sollte klargestellt werden, dass ** oben ** ist ** Y ** und ** links ** ist ** X **. Sie erwähnen sie nicht, wollten nur Klarheit schaffen. –