( el: HTMLElement, targetTop: number, factor = DEFAULT_STREAM_SCROLL_EASE, )
| 61 | * Use inside a requestAnimationFrame loop while content streams. |
| 62 | */ |
| 63 | export function easeScrollTop( |
| 64 | el: HTMLElement, |
| 65 | targetTop: number, |
| 66 | factor = DEFAULT_STREAM_SCROLL_EASE, |
| 67 | ): boolean { |
| 68 | const target = Math.max(0, targetTop); |
| 69 | const delta = target - el.scrollTop; |
| 70 | if (Math.abs(delta) < 0.5) { |
| 71 | el.scrollTop = target; |
| 72 | return true; |
| 73 | } |
| 74 | el.scrollTop += delta * factor; |
| 75 | return false; |
| 76 | } |
| 77 | |
| 78 | /** Ease a scroll container toward its bottom edge */ |
| 79 | export function easeScrollToBottom( |
no outgoing calls
no test coverage detected