aboutsummaryrefslogtreecommitdiff
path: root/src/Utils.ts
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2022-04-28 00:21:27 -0400
committerbobzel <zzzman@gmail.com>2022-04-28 00:21:27 -0400
commitd3eac62cbc55f186d9e2d3cc47407087fdc03ec7 (patch)
treef4bb0809e953988c7543a8b2961a6c338b30fb81 /src/Utils.ts
parentcf0f4d9fe144d05e8604d5224066b0e86879a3de (diff)
fixed pushpin behavior when target is near top or bottom of scrollable document.
Diffstat (limited to 'src/Utils.ts')
-rw-r--r--src/Utils.ts6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/Utils.ts b/src/Utils.ts
index 38eb51529..205f9379e 100644
--- a/src/Utils.ts
+++ b/src/Utils.ts
@@ -204,11 +204,11 @@ export namespace Utils {
return { h: h, s: s, l: l };
}
- export function scrollIntoView(targetY: number, targetHgt: number, scrollTop: number, contextHgt: number, minSpacing: number) {
- if (scrollTop + contextHgt < targetY + minSpacing + targetHgt) {
+ export function scrollIntoView(targetY: number, targetHgt: number, scrollTop: number, contextHgt: number, minSpacing: number, scrollHeight: number) {
+ if (scrollTop + contextHgt < Math.min(scrollHeight, targetY + minSpacing + targetHgt)) {
return Math.ceil(targetY + minSpacing + targetHgt - contextHgt);
}
- if (scrollTop > targetY - minSpacing - targetHgt) {
+ if (scrollTop > Math.max(0, targetY - minSpacing - targetHgt)) {
return Math.max(0, Math.floor(targetY - minSpacing - targetHgt));
}
}