Wie kann ich die aktuelle Bildlaufposition für Webseiten abrufen und einstellen?
Ich habe eine lange Form, die basierend auf Benutzeraktionen / Eingaben aktualisiert werden muss. In diesem Fall wird die Seite ganz nach oben zurückgesetzt, was für die Benutzer ärgerlich ist, da sie bis zu dem Punkt zurückblättern müssen, an dem sie sich befanden.
Wenn ich die aktuelle Bildlaufposition (in einer versteckten Eingabe) vor dem erneuten Laden der Seite erfassen könnte, könnte ich sie nach dem erneuten Laden zurücksetzen.
javascript
html
xyz
quelle
quelle
Antworten:
Sie suchen die
document.documentElement.scrollTop
Immobilie.quelle
getScrollingPosition()
, um die Werte in versteckten Variablen zu speichern. Dann verwende ich im HTML der aktualisierten Seite<body onLoad="window.scrollTo(x,y)
, wobei x und y diejenigen aus den versteckten Werten sind!document.documentElement.scrollTop
immer 0 zurückgegebendocument.body.scrollTop
wird, scheint jedoch zu funktionieren. Bei einem Firefox unter Ubuntu ist das Gegenteil der Fall - Sie erhalten 0 mitbody
und die richtige Menge mitdocumentElement
. Irgendeine Idee was gibt?scrollTop
Eigenschaft nicht in allen Browsern funktioniert. Überprüfen Siewindow.pageXOffset
undwindow.pageYOffset
für bessere Ergebnisse.Die aktuell akzeptierte Antwort ist falsch -
document.documentElement.scrollTop
gibt in Chrome immer 0 zurück. Dies liegt daran, dass WebKit dasbody
Scrollen verfolgt, während Firefox und IE dies verwendenhtml
.Um die aktuelle Position zu erhalten, möchten Sie:
Sie können die aktuelle Position wie folgt auf 1000 Pixel einstellen:
Oder verwenden Sie jQuery (animieren Sie es, während Sie gerade dabei sind!):
quelle
window.pageYOffset
ist sauberer, wenn Siewindow.scrollBy()
oderwindow.scrollTo()
Methoden verwenden.Es gibt einige Inkonsistenzen bei der Anzeige der aktuellen Bildlaufkoordinaten durch Browser. Google Chrome auf Mac und iOS scheint
0
bei Verwendung vondocument.documentElement.scrollTop
oder jQuery's immer wieder zurückzukehren$(window).scrollTop()
.Es funktioniert jedoch konsistent mit:
quelle
Ich habe mich für die lokale HTML5-Speicherlösung entschieden ... Alle meine Links rufen eine Funktion auf, die dies vor dem Ändern von window.location festlegt:
und jede Seite hat dies im onLoad des Körpers:
quelle