javascript: Unterschied zwischen scrollTop und offsetTop

9

Gibt es eine vorhersehbare Beziehung zwischen kumulativem offsetTop eines <a> -Elements und dem Wert von scrollTop nach dem Navigieren zu diesem <a> -Element?

Ich hatte naiv angenommen, dass sie gleich wären, aber ich habe Fälle gefunden, in denen scrollTop größer ist (die Bildlaufposition befindet sich weiter unten auf der Seite).

Im Folgenden wird die Frage präzisiert:

%Vor%

Mein ultimatives Ziel ist es, das nächste <a> -Tag zu finden, dessen Start über dem oberen Bereich des aktuellen Ansichtsfensters liegt. Auf diese Weise kann ich rückwärts (und vorwärts) zu Lesezeichen relativ zur aktuellen Position in einem Dokument springen.

Gibt es einige andere Maßnahmen, die ich anstelle von scrollTop und kumulative offsetTop verwenden sollte?

Ich untersuche das Problem mit Chrome, möchte aber letztendlich etwas finden, das in mindestens einigen modernen Browsern funktioniert. Ich versuche, jQuery zu vermeiden.

    
dlh 09.12.2013, 22:26
quelle

1 Antwort

2

Der Hauptunterschied, ohne zu sehr ins Detail zu gehen:

offsetTop ist schreibgeschützt, während scrollTop schreibgeschützt ist. Demnach wären Sie auf der sicheren Seite, wenn Sie offsetTop verwenden sollten:

  

Seien Sie vorsichtig mit der Eigenschaft scrollTop des HTML-Elements!

     

Im Internet Explorer vor Version 8 wird der Bildlauf abgerufen   Betrag in physischer Pixelgröße, während ab Version 8 der Wert zurückgegeben wird   Menge in logischer Pixelgröße. Was heißt das? Wenn der Browser nicht ist   auf der normalen Zoomstufe (der Benutzer hat die Möglichkeit, ein oder aus zu zoomen)   Webseite: STRG und +, STRG und -), die Eigenschaft scrollTop funktioniert   anders als in der Version 8 als in früheren Versionen.

     

Der Bildlaufbetrag wird in der Standardpixelgröße in Internet Explorer vor Version 8 berechnet, selbst wenn die aktuelle Pixelgröße in   Das Dokument ist anders.       Ab Internet Explorer 8 und in Firefox, Opera, Google Chrome und Safari wird der Scroll-Betrag in der aktuellen Pixelgröße berechnet.

     

Wenn beispielsweise die Zoomstufe 200% beträgt, wird die Eigenschaft scrollTop verwendet   ruft vor der Version 8 zwei Mal höhere Werte ab als aus der Version   8 für die gleiche Scroll-Position.

Quelle für den Text und weitere Informationen zu den beiden: Quelle

    
EvilBeer 10.12.2013 00:31
quelle

Tags und Links