123456789101112131415 |
- // from react-select
- export function scrollIntoView($scrollingEl, $focusedEl) {
- const scrollingReact = $scrollingEl.getBoundingClientRect()
- const focusedRect = $focusedEl.getBoundingClientRect()
- const overScroll = $focusedEl.offsetHeight / 3
- if (focusedRect.bottom + overScroll > scrollingReact.bottom) {
- $scrollingEl.scrollTop = Math.min(
- $focusedEl.offsetTop + $focusedEl.clientHeight - $scrollingEl.offsetHeight + overScroll,
- $scrollingEl.scrollHeight,
- )
- } else if (focusedRect.top - overScroll < scrollingReact.top) {
- $scrollingEl.scrollTop = Math.max($focusedEl.offsetTop - overScroll, 0)
- }
- }
|