Gibt es eine Möglichkeit, die absolute Position eines Elements, d. h. relativ zum Anfang des Fensters, mit jQuery zu finden?
Antworten
Zu viele Anzeigen?.offset()
gibt die versetzte Position eines Elements als einfaches Objekt zurück, z. B:
var position = $(element).offset(); // position = { left: 42, top: 567 }
Sie können diesen Rückgabewert verwenden, um andere Elemente an der gleichen Stelle zu positionieren:
$(anotherElement).css(position)
Beachten Sie, dass $(element).offset()
gibt Ihnen die Position eines Elements an relativ zum Dokument . Dies funktioniert in den meisten Fällen gut, aber im Fall von position:fixed
können Sie unerwartete Ergebnisse erzielen.
Wenn Ihr Dokument länger als das Ansichtsfenster und Sie haben vertikal zum unteren Rand des Dokuments gescrollt, dann ist Ihr position:fixed
Element offset()
Wert wird größer sein als den erwarteten Wert um den Betrag, den Sie gescrollt haben.
Wenn Sie einen günstigen Preis suchen relativ zum Ansichtsfenster (Fenster) und nicht das Dokument auf einem position:fixed-Element, können Sie den Wert des Dokuments scrollTop()
Wert aus dem Wert des festen Elements offset().top
Wert. Beispiel: $("#el").offset().top - $(document).scrollTop()
Si le position:fixed
Element ist der Offset-Elternteil des Dokument wollen Sie lesen parseInt($.css('top'))
stattdessen.