微信开发者工具写一个懒加载的demo
时间: 2024-03-13 22:14:55 浏览: 23
好的,以下是一个微信小程序图片懒加载的 demo:
1. 在 WXML 文件中添加需要懒加载的图片标签,并设置 data-src 属性,用于存储真实的图片路径。
```html
<scroll-view scroll-y="true" style="height: 100vh;">
<view wx:for="{{images}}" wx:key="{{item}}">
<image data-src="{{item}}" class="lazyload"></image>
</view>
</scroll-view>
```
2. 在 JS 文件中,监听页面滚动事件,判断哪些图片需要进行懒加载,并将真实的图片路径赋值给 src 属性。
```javascript
Page({
data: {
images: [
'https://example.com/image1.jpg',
'https://example.com/image2.jpg',
'https://example.com/image3.jpg',
'https://example.com/image4.jpg',
'https://example.com/image5.jpg'
]
},
onShow: function () {
// 监听页面滚动事件
wx.createSelectorQuery().selectViewport().scrollObserver((entries) => {
entries.forEach((entry) => {
// 判断是否在当前可视区域内
if (entry.intersectionRatio > 0) {
// 获取当前图片的 data-src 属性值
const dataSrc = entry.target.dataset.src
// 将真实的图片路径赋值给 src 属性
entry.target.src = dataSrc
}
})
})
}
})
```
3. 在 CSS 文件中,为需要懒加载的图片设置默认的占位图,并为懒加载图片添加一些简单的动画效果,提升用户体验。
```css
.lazyload {
width: 100%;
height: 200px;
background-color: #f0f0f0; /* 设置默认的占位图 */
animation: fade-in 0.5s ease-in-out; /* 添加简单的动画效果 */
}
@keyframes fade-in {
from { opacity: 0; }
to { opacity: 1; }
}
```
这样,我们就完成了一个简单的微信小程序图片懒加载的 demo。