diff options
author | tdro <tdro@noreply.example.com> | 2022-10-12 19:43:11 -0400 |
---|---|---|
committer | tdro <tdro@noreply.example.com> | 2022-10-12 19:43:11 -0400 |
commit | 05ff3effd89f3b75443bfcfce4455902c783d27f (patch) | |
tree | dd4b3969f8fe1b98e1e062c4519749d0fa200c7d | |
parent | 320c736adaa6374fb0ac9988a64cbb1bd143425b (diff) | |
download | canory-05ff3effd89f3b75443bfcfce4455902c783d27f.tar.gz canory-05ff3effd89f3b75443bfcfce4455902c783d27f.tar.bz2 canory-05ff3effd89f3b75443bfcfce4455902c783d27f.zip |
static/js/pager: Keep it simple and restore on scroll change
-rw-r--r-- | assets/js/index.js | 34 | ||||
-rw-r--r-- | static/js/pager.ts | 40 |
2 files changed, 7 insertions, 67 deletions
diff --git a/assets/js/index.js b/assets/js/index.js index 0e3f0a9..7a456ad 100644 --- a/assets/js/index.js +++ b/assets/js/index.js @@ -52,26 +52,6 @@ history.go(-1); } }; - const fragmentClear = (entries)=>{ - for(let entry = 0; entry < entries.length; entry++){ - if (self.location.hash) { - self.history.replaceState(null, "", url1); - } - } - }; - const fragmentRelease = (fragmentCallback)=>{ - try { - const fragmentObserver = new IntersectionObserver(fragmentCallback, { - threshold: 1.0 - }); - const fragments = document.querySelectorAll("[id]"); - for(let fragment = 0; fragment < fragments.length; fragment++){ - fragmentObserver.observe(fragments[fragment]); - } - } catch (error) { - console.log("The intersection observer is not supported", error); - } - }; self.addEventListener("DOMContentLoaded", function() { scrollRestore(url1); self.addEventListener("click", function(event) { @@ -80,19 +60,11 @@ backTrack(back, up, event); }); }); - let scrolls = 0; - let once = (action)=>{ - once = function() {}; - action(); - }; self.addEventListener("scroll", function() { scrollTrack(url1); - if (scrolls > 3) { - once(function() { - fragmentRelease(fragmentClear); - }); - } - scrolls++; + }); + self.addEventListener("hashchange", function() { + scrollRestore(url1); }); })(); (function() { diff --git a/static/js/pager.ts b/static/js/pager.ts index 411c3c5..01d40d7 100644 --- a/static/js/pager.ts +++ b/static/js/pager.ts @@ -53,29 +53,6 @@ } }; - const fragmentClear = (entries) => { - for (let entry = 0; entry < entries.length; entry++) { - if (self.location.hash) { - self.history.replaceState(null, "", url); - } - } - }; - - const fragmentRelease = (fragmentCallback) => { - try { - const fragmentObserver = new IntersectionObserver(fragmentCallback, { - threshold: 1.0, - }); - const fragments = document.querySelectorAll("[id]"); - - for (let fragment = 0; fragment < fragments.length; fragment++) { - fragmentObserver.observe(fragments[fragment]); - } - } catch (error) { - console.log("The intersection observer is not supported", error); - } - }; - self.addEventListener("DOMContentLoaded", function () { scrollRestore(url); self.addEventListener("click", function (event) { @@ -85,20 +62,11 @@ }); }); - let scrolls = 0; - - let once = (action) => { - once = function () {}; - action(); - }; - self.addEventListener("scroll", function () { scrollTrack(url); - if (scrolls > 3) { - once(function () { - fragmentRelease(fragmentClear); - }); - } - scrolls++; + }); + + self.addEventListener("hashchange", function () { + scrollRestore(url); }); })(); |