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 /static | |
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
Diffstat (limited to 'static')
-rw-r--r-- | static/js/pager.ts | 40 |
1 files changed, 4 insertions, 36 deletions
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); }); })(); |