A criação de sites reativos e responsivos costumava ser considerada avançada, mas a capacidade de resposta é uma necessidade para sites e aplicativos bem-sucedidos. Adicionamos as consultas de mídia, matchMedia
e uma série de outras APIs para ajudar os desenvolvedores a facilitar a capacidade de resposta e agora temos uma nova: ResizeObserver
. Com a API Resize Observer, podemos observar o redimensionamento de elementos individuais!
Usando ResizeObserver
Para ouvir as alterações de redimensionamento nos elementos, crie um ResizeObserver
e chame o observe
, passando um elemento:
const observer = new ResizeObserver(entries => { for (let entry of entries) { // Now do something with the resized element if (entry.contentRect.widthAn
entry
provides you a target element as well as its dimensions and positioning:entry = { target: div, // The element passed to `observe` contentRect: { bottom: 88, height: 88, left: 0, right: 1043, top: 0, width: 1043, x: 0, y: 0 } }Consultas de mídia e
matchMedia
oferecem uma oportunidade de ajustar a exibição via CSS, mas não a funcionalidade, que é onde oResizeObserver
se encaixa.Anos atrás, criei um hack para espionar elementos usando CSS, media queries e
:before
mas ele exigia sondagem via JavaScript para funcionar corretamente. Ter uma API JavaScript legítima e otimizada para fazer o mesmo é revigorante e extremamente necessário!