Safari ResizeObserver

by Julien Etienne

CSS

body{
  font-size: 5rem;
}

JavaScript

/* let lastWidth;
const resizeObserver = new ResizeObserver(entries => {
  const body = entries[0];
  const width = body.contentRect.width;
  if (width !== lastWidth) {
    document.body.innerHTML = `CHANGE ${width}`;
  }
  lastWidth = width;
});
resizeObserver.observe(document.body);
 */

  const bodyWidth = document.body.getBoundingClientRect().width;
  document.body.innerHTML = `CHANGED: ${bodyWidth}`;
window.addEventListener('resize', () => {
  const bodyWidth = document.body.getBoundingClientRect().width;
  document.body.innerHTML = `CHANGED: ${bodyWidth}`;
});