diff options
-rw-r--r-- | assets/js/index.js | 18 | ||||
-rw-r--r-- | static/js/pager.ts | 16 |
2 files changed, 19 insertions, 15 deletions
diff --git a/assets/js/index.js b/assets/js/index.js index 8329e09..9895067 100644 --- a/assets/js/index.js +++ b/assets/js/index.js @@ -12,16 +12,14 @@ const url = self.location.href.split("#")[0].split("?")[0]; const scrollRestore = function(url) { if (history.scrollRestoration) history.scrollRestoration = "manual"; - if (localStorage[key]) { - settings = JSON.parse(localStorage[key]); - } + if (localStorage[key]) settings = JSON.parse(localStorage[key]); const fragment = document.getElementById(location.hash.slice(1)); const fragmentInURL = self.location.hash.length > 0; if (fragmentInURL && document.body.contains(fragment)) { settings["pager"][url] = self.pageYOffset; localStorage[key] = JSON.stringify(settings); fragment.scrollIntoView(); - self.addEventListener("load", function() { + self.addEventListener("DOMContentLoaded", function() { fragment.scrollIntoView(); }); return; @@ -57,12 +55,18 @@ backTrack(back, up, event); }); }); - self.addEventListener("scroll", function() { - scrollTrack(url); - }); self.addEventListener("hashchange", function() { scrollRestore(url); }); + [ + "click", + "touchstart", + "scroll" + ].forEach(function(event) { + self.addEventListener(event, function(event) { + scrollTrack(url); + }); + }); })(); (function() { function check(url, method, callback) { diff --git a/static/js/pager.ts b/static/js/pager.ts index c685cb1..cb7f8a4 100644 --- a/static/js/pager.ts +++ b/static/js/pager.ts @@ -14,16 +14,14 @@ const scrollRestore = function (url) { if (history.scrollRestoration) history.scrollRestoration = "manual"; - if (localStorage[key]) { - settings = JSON.parse(localStorage[key]); - } + if (localStorage[key]) settings = JSON.parse(localStorage[key]); const fragment = document.getElementById(location.hash.slice(1)); const fragmentInURL = self.location.hash.length > 0; if (fragmentInURL && document.body.contains(fragment)) { settings["pager"][url] = self.pageYOffset; localStorage[key] = JSON.stringify(settings); fragment.scrollIntoView(); - self.addEventListener("load", function () { + self.addEventListener("DOMContentLoaded", function () { fragment.scrollIntoView(); }); return; @@ -63,11 +61,13 @@ }); }); - self.addEventListener("scroll", function () { - scrollTrack(url); - }); - self.addEventListener("hashchange", function () { scrollRestore(url); }); + + ["click", "touchstart", "scroll"].forEach(function (event) { + self.addEventListener(event, function (event) { + scrollTrack(url); + }); + }); })(); |