From 35269ef701767cfa6474984c73ae6d19e40e3d71 Mon Sep 17 00:00:00 2001 From: tdro Date: Fri, 2 Sep 2022 08:32:34 -0400 Subject: static/js/pager: Delay intersection observer from scroll event once Replace instead of append --- static/js/pager.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'static') diff --git a/static/js/pager.ts b/static/js/pager.ts index 68708cc..7231161 100644 --- a/static/js/pager.ts +++ b/static/js/pager.ts @@ -56,7 +56,7 @@ const fragmentClear = (entries) => { for (let entry = 0; entry < entries.length; entry++) { if (self.location.hash) { - self.history.pushState(null, "", url); + self.history.replaceState(null, "", url); } } }; @@ -78,7 +78,6 @@ self.addEventListener("DOMContentLoaded", function () { scrollRestore(settings, url); - fragmentRelease(fragmentClear); self.addEventListener("click", function (event) { const up = document.getElementById("top"); const back = document.getElementById("back"); @@ -86,7 +85,20 @@ }); }); + let scrolls = 0; + + let once = (action) => { + once = function () {}; + action(); + }; + self.addEventListener("scroll", function () { scrollTrack(settings, url); + if (scrolls > 3) { + once(function () { + fragmentRelease(fragmentClear); + }); + } + scrolls++; }); })(); -- cgit v1.2.3