Lazy Images [code]

    const observer = new IntersectionObserver(changes => {
        for (change of changes) {
            const {target} = change
            target.src = target.dataset.src
            target.classList.remove('hidden')
            observer.unobserve(target)
        }
      }
    })
    Array.from(document.querySelectorAll('.hidden')).forEach(img =>
        observer.observe(img)
    )