diff options
| author | bobzel <zzzman@gmail.com> | 2022-04-28 00:21:27 -0400 |
|---|---|---|
| committer | bobzel <zzzman@gmail.com> | 2022-04-28 00:21:27 -0400 |
| commit | d3eac62cbc55f186d9e2d3cc47407087fdc03ec7 (patch) | |
| tree | f4bb0809e953988c7543a8b2961a6c338b30fb81 /src/Utils.ts | |
| parent | cf0f4d9fe144d05e8604d5224066b0e86879a3de (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.ts | 6 |
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)); } } |
