Scrollposition über Seitenaufrufe hinweg merken

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Hakim El Hattab tweetete eine wirklich nette kleine UX-Verbesserung für eine statische Seite mit einer scrollbaren Navigationsleiste.

Der Trick besteht darin, die Scrollposition kurz vor dem Verlassen der Seite in localStorage zu speichern und beim Laden diesen Wert abzurufen und dorthin zu scrollen. Ich werde ihn aus dem Tweet abtippen…

let sidebar = document.querySelector(".sidebar");

let top = localStorage.getItem("sidebar-scroll");
if (top !== null) {
  sidebar.scrollTop = parseInt(top, 10);
}

window.addEventListener("beforeunload", () => {
  localStorage.setItem("sidebar-scroll", sidebar.scrollTop);
});

Was überrascht, ist, dass man keinen kurzzeitigen Flimmer der falschen Scrollposition hat. Ich frage mich, warum? Vielleicht hat es mit dem "fancy paint" zu tun, das Browser inzwischen verwenden? Bin mir nicht sicher.