帮我生成微信小程序仿探探的发现页面
时间: 2023-09-30 11:09:48 浏览: 202
好的,下面是一个简单的微信小程序仿探探的发现页面示例:
```
// pages/discovery/discovery.js
Page({
data: {
cards: [], // 卡片列表
startX: 0, // 手指触摸起始坐标
startY: 0, // 手指触摸起始坐标
currentIndex: 0 // 当前卡片的索引
},
onLoad: function () {
// 初始化卡片列表
this.setData({
cards: [
{id: 1, name: '张三', age: 20, gender: '男', imageUrl: 'https://your-backend-url.com/image1.jpg'},
{id: 2, name: '李四', age: 22, gender: '女', imageUrl: 'https://your-backend-url.com/image2.jpg'},
{id: 3, name: '王五', age: 18, gender: '男', imageUrl: 'https://your-backend-url.com/image3.jpg'},
{id: 4, name: '赵六', age: 19, gender: '女', imageUrl: 'https://your-backend-url.com/image4.jpg'}
]
});
},
// 手指触摸开始事件
touchStart: function (e) {
this.setData({
startX: e.changedTouches[0].clientX,
startY: e.changedTouches[0].clientY
})
},
// 手指触摸结束事件
touchEnd: function (e) {
var endX = e.changedTouches[0].clientX;
var endY = e.changedTouches[0].clientY;
var startX = this.data.startX;
var startY = this.data.startY;
var currentIndex = this.data.currentIndex;
var cards = this.data.cards;
// 判断手指滑动方向
var direction = this.getDirection(startX, startY, endX, endY);
if (direction == 0) {
// 未滑动
return;
} else if (direction == 1) {
// 向上滑动
currentIndex++;
if (currentIndex >= cards.length) {
// 已经到最后一张卡片,重新开始
currentIndex = 0;
}
} else if (direction == 2) {
// 向下滑动
currentIndex--;
if (currentIndex < 0) {
// 已经到第一张卡片,从最后一张卡片开始
currentIndex = cards.length - 1;
}
}
// 更新当前卡片索引
this.setData({
currentIndex: currentIndex
});
},
// 获取手指滑动方向
getDirection: function (startX, startY, endX, endY) {
var dy = startY - endY;
var dx = endX - startX;
var angle = Math.abs(Math.atan2(dy, dx) * 180 / Math.PI);
if (angle <= 45) {
return dx > 0 ? 1 : 2; // 向左或向右滑动
} else if (angle >= 135) {
return dy > 0 ? 3 : 4; // 向上或向下滑动
} else {
return 0; // 未滑动
}
}
})
```
这段代码演示了如何实现一个简单的发现页面,其中包含一个卡片列表,用户可以通过手指向上或向下滑动来切换卡片。在实际应用中,你需要使用真实的数据来替换示例中的假数据,并根据设计要求进行样式调整。
阅读全文