aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assets/js/index.js18
-rw-r--r--static/js/pager.ts16
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);
+ });
+ });
})();