返回
探索非对称瀑布流和无限加载的奥秘:打造类京东微信小程序
前端
2023-10-03 11:15:33
小程序已成为电商领域的宠儿,微信小程序更是不遑多让。打造一款类京东的小程序,不仅能满足用户需求,还能增强品牌影响力。而实现非对称瀑布流和无限加载列表,更是小程序锦上添花的功能。
非对称瀑布流:视觉盛宴
瀑布流布局已广泛应用于电商、资讯等领域,其错落有致的排列方式,能有效提升视觉吸引力。非对称瀑布流在此基础上更进一步,打破了传统瀑布流的单调性,赋予其更多灵动感和层次感。
在微信小程序中实现非对称瀑布流,需要巧妙运用 CSS 布局和 Flexbox 技术。通过设置不同宽度的瀑布流列,错落有致地排列商品卡片,就能营造出赏心悦目的视觉效果。
无限加载:畅快体验
用户在浏览商品列表时,最怕的就是频繁刷新页面或点击加载更多按钮。无限加载功能,让用户无需任何手动操作,就能在滑动到底部时自动加载新商品。
实现无限加载的关键在于监听页面滚动事件,当页面滚动接近底部时,触发加载新数据的请求。小程序提供了 wx.request() 方法,用于发送网络请求,获取新商品数据。通过动态渲染列表,就能实现无限加载效果。
全局遮罩层:便捷操作
在商品列表中,用户经常需要进行一些操作,比如添加购物车、收藏等。为了避免遮挡商品卡片,可以采用全局遮罩层的方式,在操作时浮出一层半透明的遮罩,方便用户交互。
小程序的 wx.showModal() 方法,能轻松实现全局遮罩层的创建。通过设置 showCancel 为 false,即可隐藏取消按钮,避免用户误操作。
技术指南
1. 非对称瀑布流
.waterfall-list {
display: flex;
flex-wrap: wrap;
}
.waterfall-item {
width: calc(50% - 12px);
margin: 6px;
}
@media (min-width: 768px) {
.waterfall-item {
width: calc(33.33% - 12px);
}
}
2. 无限加载
const page = this;
Page({
data: {
page: 1,
loading: false,
goodsList: [],
},
onLoad() {
this.getGoodsList();
},
onReachBottom() {
if (this.data.loading) return;
this.setData({ loading: true });
this.getGoodsList();
},
getGoodsList() {
const page = this.data.page;
wx.request({
url: '...',
data: { page },
success: (res) => {
const goodsList = this.data.goodsList.concat(res.data.data);
this.setData({
goodsList,
loading: false,
page: page + 1,
});
},
});
},
});
3. 全局遮罩层
const page = this;
Page({
showModal() {
wx.showModal({
title: '提示',
content: '...',
showCancel: false,
});
},
});
SEO优化