alpinejs-sticky
Version:
Add classes when an element is stuck in the viewport
23 lines (20 loc) • 589 B
JavaScript
export function useScroll(inactiveClasses, activeClasses, rootEl, el) {
if (inactiveClasses) {
inactiveClasses.forEach(function (className) {
el.classList.add(className)
})
}
window.addEventListener('scroll', function () {
if (inactiveClasses) {
inactiveClasses.forEach(function (className) {
el.classList.toggle(className, window.scrollY === 0)
})
}
activeClasses.forEach(function (className) {
el.classList.toggle(
className,
rootEl.getBoundingClientRect().top === 0 && window.scrollY > 0
)
})
})
}