aboutsummaryrefslogtreecommitdiff
path: root/public
diff options
context:
space:
mode:
authorThedro Neely <thedroneely@gmail.com>2022-02-09 22:02:54 -0500
committerThedro Neely <thedroneely@gmail.com>2022-02-09 22:02:54 -0500
commit1ad436910429e307d0df98d3d0411ae620701b32 (patch)
tree87e7b0d34dc6f58a0b0e39e9a0accfa849fc6c63 /public
parent86e53bc12c777ca2cdebf64ab3c33c5230ad6808 (diff)
downloadthedroneely.com-1ad436910429e307d0df98d3d0411ae620701b32.tar.gz
thedroneely.com-1ad436910429e307d0df98d3d0411ae620701b32.tar.bz2
thedroneely.com-1ad436910429e307d0df98d3d0411ae620701b32.zip
public/js/app: Manual history scroll restoration
Chromium based scroll restoration behavior is strange - assume manual control.
Diffstat (limited to 'public')
-rw-r--r--public/js/app.js10
1 files changed, 5 insertions, 5 deletions
diff --git a/public/js/app.js b/public/js/app.js
index 814426a..2e61595 100644
--- a/public/js/app.js
+++ b/public/js/app.js
@@ -27,14 +27,15 @@ url = window.location.href.split('#')[0];
var settings = { pager: {} };
window.addEventListener('load', function(event) {
+ if (history.scrollRestoration) { history.scrollRestoration = 'manual'; }
if (localStorage['settings']) { settings = JSON.parse(localStorage['settings']); }
if (window.location.href.indexOf("#") >= 0) {
- settings['pager'][url] = window.pageYOffset + 1;
+ settings['pager'][url] = window.pageYOffset;
localStorage['settings'] = JSON.stringify(settings);
return;
}
- if (settings['pager'][url]) { window.scrollTo(0, settings['pager'][url]); return; }
- settings['pager'][url] = window.pageYOffset + 1;
+ if (settings['pager'][url] > 0) { window.scrollTo(0, settings['pager'][url]); return; }
+ settings['pager'][url] = window.pageYOffset;
localStorage['settings'] = JSON.stringify(settings);
});
@@ -119,6 +120,7 @@ window.addEventListener('scroll', function(event) {
var velocity = previousPosition - currentPosition;
settings['pager'][url] = currentPosition;
+ localStorage['settings'] = JSON.stringify(settings);
if (scrolls > 3) {
if (velocity > 75 || currentPosition < navbarHeight) {
@@ -128,8 +130,6 @@ window.addEventListener('scroll', function(event) {
} else if (currentPosition > navbarHeight) {
runOnce(function () { addClass(navbar, 'headroom'); });
}
-
- localStorage['settings'] = JSON.stringify(settings);
}
previousPosition = currentPosition;