Die Rückgabewerte der Offset-Methode

8

Ich habe ein Element mit id="stimulus" in einem HTML-Dokument.

Wenn ich dieses Dokument in einem Browser öffne und die Browser-Konsole verwende, um die Eigenschaften von #stimulus zu untersuchen, sehe ich Folgendes:

%Vor%

Wie soll ich das interpretieren? Wie ist top in offset anders als top , auf das mit der css Methode zugegriffen wird?

    
dbliss 22.01.2016, 23:07
quelle

5 Antworten

5

Von der offset () -Dokumentation stammt der Versatz vom Anfang des Dokuments; während die oberen und linken CSS-Eigenschaften relativ zum übergeordneten Element sind. Vielleicht möchten Sie sich die Position () ansehen, um den Offset relativ zum Offset-Elternteil .

    
Joseph Young 22.01.2016, 23:10
quelle
4

Offset ist die Position innerhalb der ganzen Seite

css top positioniert das Element relativ zu seinem nächstliegenden Vorfahren. Dieser Vorfahr könnte irgendwo auf der Seite sein und so passen Offset und Top nicht zusammen, es sei denn, es gibt keinen positionierten Vorfahren.

    
charlietfl 22.01.2016 23:10
quelle
4

Sie haben wahrscheinlich diesen Unterschied der Ergebnisse erhalten, weil id="stimulus" animiert wurde und Sie console.log in verschiedenen Frames sendeten. Oder das Element ist tatsächlich "statisch" und hat einige andere Eigenschaften, die seinen offset() Standort ändern.

Wie

%Vor% %Vor% %Vor%
    
Filipe 22.01.2016 23:17
quelle
1

jQuerys Methode .offset() gibt die Koordinaten des Elements relativ zum Dokument zurück, während die Methode .css() alle Werte zurückgibt, die über CSS-Stile angewendet wurden.

Ссылка

    
sean 22.01.2016 23:10
quelle
1

Aus jQuerys Dokumentation .offset() :

  

Mit der Methode .offset() können wir die aktuelle Position eines Elements relativ zum Dokument abrufen. Vergleichen Sie dies mit .position() , wodurch die aktuelle Position relativ zum übergeordneten Offset abgerufen wird.

Die Methode .css() abstrahiert das native CSSStyleDeclaration API , die die Position relativ zum übergeordneten Element zurückgibt, aber nur, wenn sie explizit in CSS angegeben ist . Wenn Sie das wollen, dann verwenden Sie .position() anstelle von .offset() .

Demo

%Vor% %Vor% %Vor%
    
Patrick Roberts 22.01.2016 23:10
quelle

Tags und Links