let io = null
if (window.IntersectionObserver) {
io = new IntersectionObserver((entries) =>
entries
.filter(({ isIntersecting }) => isIntersecting)
.map(({ target }) => target)
.filter((el) => (el.dataset.reveal || '').indexOf('no') > -1)
.map((el, index) => {
let hasBottom = (el.dataset.reveal || '').indexOf('bottom') > -1
if (hasBottom) {
el.dataset.reveal = `yes:${index + 1}`
} else {
el.dataset.reveal = `yes`
}
})
)
}
export const watchLayoutContainerForReveal = (layoutEl) => {
if (!window.IntersectionObserver) {
return
}
let items = layoutEl.querySelectorAll('[data-reveal*="no"]')
if (items.length === 0) return
if (!items[0].dataset.reveal) return
;[...items].map((el) => io.observe(el))
}
|