图片懒加载 SDK
- 滚动节流
- 图片进入视图内进行加载(
elem.getBoundingClientRect()
) - 图
top
和window.innerHeight
代码示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script src="https://cdn.bootcdn.net/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>
<script>
function mapImgesAndTryLoad() {
const images = document.querySelectorAll('img[data-src]')
if (images.lenght ===0) return
images.forEach(img => {
const rect = img.getBoundingClientRect()
if (rect.top < window.innerHeight) {
img.src = img.dataset.src
}
})
}
window.addEventListener('scroll', _.thottle(() => {
mapImgesAndTryLoad()
}))
// 页面初始化时调用
mapImgesAndTryLoad()
</script>