Ich versuche, die Position der Bildlaufleiste des Browsers mit JavaScript zu ermitteln, um zu entscheiden, wo auf der Seite sich die aktuelle Ansicht befindet. Ich vermute, dass ich erkennen muss, wo sich der Daumen auf der Spur befindet, und dann die Höhe des Daumens als Prozentsatz der Gesamthöhe der Spur. Überkompliziere ich es oder bietet JavaScript eine einfachere Lösung? Irgendwelche Ideen in Bezug auf den Code?
188
element
unddocument.body
war nur ein Beispiel). Weitere Informationen finden Sie unter howtocreate.co.uk/tutorials/javascript/browserwindow .window.pageYOffset
, kann aber nichts mit IE7 zum Laufen bringen. Versuchtewindow.pageYOffset
,document.body.scrollTop
,document.documentElement.scrollTop
,element.scrollTop
document.body
in den meisten modernen Browsern nicht aktiviert - sie ist normalerweisedocument.documentElement
jetzt aktiviert. Informationen zum Übergang von Chrome finden Sie unter bugs.chromium.org/p/chromium/issues/detail?id=157855 .Ich habe das für eine
<div>
auf Chrome gemacht.Element .scrollTop - sind die Pixel, die aufgrund des oben ausgeblendet sind. Ohne Bildlauf ist der Wert 0.
Element .scrollHeight - sind die Pixel des gesamten Div.
Element .clientHeight - sind die Pixel, die Sie in Ihrem Browser sehen.
wird die Position sein.
wird der Maximalwert für scrollTop sein .
wird der Prozentsatz der Schriftrolle sein [von 0 bis 1] .
quelle
Gibt ein Array mit zwei Ganzzahlen zurück - [scrollLeft, scrollTop]
quelle
es ist so :)
quelle
Antwort für 2018 :
Der beste Weg, dies zu tun, ist die Verwendung der Intersection Observer-API .
Siehe folgendes Codebeispiel:
Die meisten modernen Browser unterstützen den IntersectionObserver , Sie sollten jedoch die Polyfüllung aus Gründen der Abwärtskompatibilität verwenden.
quelle
wenn Sie sich für die ganze Seite interessieren. Sie können dies verwenden:
quelle
Wenn Sie jQuery verwenden, gibt es eine perfekte Funktion für Sie: .scrollTop ()
Dokument hier -> http://api.jquery.com/scrollTop/
Hinweis: Mit dieser Funktion können Sie die Position abrufen ODER festlegen.
Siehe auch: http://api.jquery.com/?s=scroll
quelle
Hier ist der andere Weg, um die Bildlaufposition zu erhalten
quelle
Ich denke, die folgende Funktion kann helfen, Bildlaufkoordinatenwerte zu haben:
Ich habe diese Idee aus dieser Antwort mit einer kleinen Änderung erhalten.
quelle