uniapp,如何对图片懒加载
时间: 2023-07-05 11:23:28 浏览: 664
在 uniapp 中,可以使用 `uni.loadImage()` 方法实现图片的懒加载。具体步骤如下:
1. 安装 `uni-loadmore` 组件,用于监听页面滚动事件。
```
npm install uni-loadmore
```
2. 在需要懒加载的图片上添加 `data-src` 属性,用于存储图片的真实地址。
```
<img class="lazy-image" data-src="真实图片地址" src="占位图片地址" />
```
3. 在页面的 `mounted` 钩子函数中初始化 `uni.loadmore` 组件,并监听 `scrolltop` 事件。
```
mounted() {
uni.$emit('loadmore::init');
uni.$on('scrolltop', this.handleScrollTop);
},
methods: {
handleScrollTop(event) {
const { top } = event.detail;
const lazyImages = [...document.querySelectorAll('.lazy-image')];
lazyImages.forEach((image) => {
if (image.offsetTop < top + window.innerHeight) {
const src = image.getAttribute('data-src');
image.setAttribute('src', src);
image.classList.remove('lazy-image');
}
});
},
},
```
在 `handleScrollTop` 方法中,获取所有带有 `lazy-image` 类的图片,判断图片距离页面顶部的距离是否小于页面可视区域的高度加上滚动条的高度,如果小于就把 `data-src` 属性的值赋给 `src` 属性,去掉 `lazy-image` 类,实现图片的懒加载。
4. 在页面的 `beforeDestroy` 钩子函数中移除 `scrolltop` 事件监听。
```
beforeDestroy() {
uni.$off('scrolltop', this.handleScrollTop);
},
```
以上就是在 uniapp 中实现图片懒加载的方法,希望能对你有所帮助。
阅读全文