diff options
author | crupest <crupest@outlook.com> | 2021-05-08 09:56:03 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2021-05-08 09:56:03 +0800 |
commit | c381b56b4a74c7febf82d9b6de9e26ddd59f6605 (patch) | |
tree | a09f9b2d61183922688c037215197233c7ac79c8 /FrontEnd/src/app/utilities/useReverseScrollPositionRemember.ts | |
parent | e61c41a592b3844ab66f52fb3c9de97a03884f69 (diff) | |
download | timeline-c381b56b4a74c7febf82d9b6de9e26ddd59f6605.tar.gz timeline-c381b56b4a74c7febf82d9b6de9e26ddd59f6605.tar.bz2 timeline-c381b56b4a74c7febf82d9b6de9e26ddd59f6605.zip |
fix: Try to fix scroll to top problem.
Diffstat (limited to 'FrontEnd/src/app/utilities/useReverseScrollPositionRemember.ts')
-rw-r--r-- | FrontEnd/src/app/utilities/useReverseScrollPositionRemember.ts | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/FrontEnd/src/app/utilities/useReverseScrollPositionRemember.ts b/FrontEnd/src/app/utilities/useReverseScrollPositionRemember.ts index 742751eb..42894c20 100644 --- a/FrontEnd/src/app/utilities/useReverseScrollPositionRemember.ts +++ b/FrontEnd/src/app/utilities/useReverseScrollPositionRemember.ts @@ -1,9 +1,8 @@ import React from "react"; let on = false; -let recordDisabled = false; -function getScrollPosition(): number { +export function getReverseScrollPosition(): number { if (document.documentElement.scrollHeight <= window.innerHeight) { return 0; } else { @@ -15,28 +14,24 @@ function getScrollPosition(): number { } } -let scrollPosition = getScrollPosition(); - -function scrollToRecordPosition(): void { +export function scrollToReverseScrollPosition(reversePosition: number): void { if (document.documentElement.scrollHeight <= window.innerHeight) return; document.documentElement.scrollTop = - document.documentElement.scrollHeight - window.innerHeight - scrollPosition; + document.documentElement.scrollHeight - + window.innerHeight - + reversePosition; } +let scrollPosition = getReverseScrollPosition(); + const scrollListener = (): void => { - if (recordDisabled) return; - scrollPosition = getScrollPosition(); + scrollPosition = getReverseScrollPosition(); }; const resizeObserver = new ResizeObserver(() => { - scrollToRecordPosition(); + scrollToReverseScrollPosition(scrollPosition); }); -export function setRecordDisabled(disabled: boolean): void { - recordDisabled = disabled; - if (!disabled) scrollToRecordPosition(); -} - export default function useReverseScrollPositionRemember(): void { React.useEffect(() => { if (on) return; |