JavaScript Positions - Cheatsheet
Cheatsheet para lidar posições em navegadores com JavaScript
Informações sobre tamanho e posicionamento da tela
element.getBoundingClientRect()
Posicionamento de objeto com relação ao scroll da página
function getCoords() {
const body = document.body
const docEl = document.documentElement
const scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop
const scrollLeft = window.pageXOffset || docEl.scrollLeft || body.scrollLeft
const clientTop = docEl.clientTop || body.clientTop || 0
const clientLeft = docEl.clientLeft || body.clientLeft || 0
const top = scrollTop - clientTop
const left = scrollLeft - clientLeft
return { top: Math.round(top), left: Math.round(left) }
}
Movimentar scroll do navegador lentamente para posição
window.scroll({
top: 0,
left: 0,
behavior: "smooth",
})
Verificar se elemento está na tela
function isElementInViewport(el) {
const rect = el.getBoundingClientRect()
return (
rect.top >= 0 &&
rect.left >= 0 &&
rect.bottom <=
(window.innerHeight || document.documentElement.clientHeight) &&
rect.right <= (window.innerWidth || document.documentElement.clientWidth)
)
}