UNPKG

alpinejs-scroll-to

Version:

Easily add scroll to functionality with options, powered by Alpine JS 🐭

18 lines (14 loc) 501 B
export function useClick(targetEl, { offsetHeader = false, useSmooth = true }) { const targetId = targetEl.href.split('#')[1] const scrollToEl = document.getElementById(targetId) const scrollToElPos = scrollToEl.getBoundingClientRect() let scrollOffset = 0 if (offsetHeader) { scrollOffset = document.querySelector('[x-scroll-to-header]').clientHeight } window.scrollTo({ top: scrollToElPos.top - scrollOffset, left: 0, behavior: useSmooth ? 'smooth' : 'auto', }) }