Files
Compass/web/lib/util/scroll.ts
MartinBraquet 58625b604a Prettier
2026-07-23 14:53:48 +02:00

10 lines
479 B
TypeScript

export const scrollIntoViewCentered = (element: HTMLElement) => {
// Because elem.scrollIntoView({ block: 'center' }) doesn't work on safari (mobile/desktop).
const elementRect = element.getBoundingClientRect()
const absoluteElementTop = elementRect.top + window.pageYOffset
const halfWindowHeight = window.innerHeight / 2
const middle =
absoluteElementTop - halfWindowHeight + Math.min(elementRect.height / 2, halfWindowHeight - 58)
window.scrollTo(0, middle)
}