aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortdro <tdro@noreply.example.com>2022-10-12 19:43:11 -0400
committertdro <tdro@noreply.example.com>2022-10-12 19:43:11 -0400
commit05ff3effd89f3b75443bfcfce4455902c783d27f (patch)
treedd4b3969f8fe1b98e1e062c4519749d0fa200c7d
parent320c736adaa6374fb0ac9988a64cbb1bd143425b (diff)
downloadcanory-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.js34
-rw-r--r--static/js/pager.ts40
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);
});
})();