aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/app/utilities/useReverseScrollPositionRemember.ts
diff options
context:
space:
mode:
Diffstat (limited to 'FrontEnd/src/app/utilities/useReverseScrollPositionRemember.ts')
-rw-r--r--FrontEnd/src/app/utilities/useReverseScrollPositionRemember.ts24
1 files changed, 18 insertions, 6 deletions
diff --git a/FrontEnd/src/app/utilities/useReverseScrollPositionRemember.ts b/FrontEnd/src/app/utilities/useReverseScrollPositionRemember.ts
index 8a2bd7a0..67c7c458 100644
--- a/FrontEnd/src/app/utilities/useReverseScrollPositionRemember.ts
+++ b/FrontEnd/src/app/utilities/useReverseScrollPositionRemember.ts
@@ -7,19 +7,31 @@ export default function useReverseScrollPositionRemember(): void {
if (on) return;
on = true;
- let scrollPosition =
- document.documentElement.scrollHeight -
- document.documentElement.scrollTop;
-
+ function getScrollPosition(): number {
+ if (document.documentElement.scrollHeight <= window.innerHeight) {
+ return 0;
+ } else {
+ return (
+ document.documentElement.scrollHeight -
+ document.documentElement.scrollTop -
+ window.innerHeight
+ );
+ }
+ }
+
+ let scrollPosition = getScrollPosition();
const scrollListener = (): void => {
- scrollPosition = document.documentElement.scrollHeight - window.scrollY;
+ scrollPosition = getScrollPosition();
};
window.addEventListener("scroll", scrollListener);
const resizeObserver = new ResizeObserver(() => {
+ if (document.documentElement.scrollHeight <= window.innerHeight) return;
document.documentElement.scrollTop =
- document.documentElement.scrollHeight - scrollPosition;
+ document.documentElement.scrollHeight -
+ window.innerHeight -
+ scrollPosition;
});
resizeObserver.observe(document.documentElement);