可以为 <img /> 标签添加 loading 属性为 lazy,除此之外还需要为img标签设置默认的高度,这样就可以实现原生的图片懒加载。
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>img</title><style>img {display: block;margin: 1em 0;}</style></head><body><div class="container"></div><script>const ulElement = document.createElement('ul')const fragment = document.createDocumentFragment()const container = document.querySelector('.container')for (let i = 0; i < 20; i++) {const li = document.createElement('li')const img = document.createElement('img')// img.width = 400 + iimg.height = 400 + iimg.src = `https://via.placeholder.com/400x400?text=${i}`img.loading = 'lazy'li.appendChild(img)fragment.appendChild(li)}ulElement.appendChild(fragment)container.appendChild(ulElement)</script></body></html>
