91 lines
2.5 KiB
JavaScript
91 lines
2.5 KiB
JavaScript
// pages/swiper.js
|
|
var startY, endY
|
|
|
|
Page({
|
|
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
isLoop : false,
|
|
swiperNumber : 0,
|
|
swiperArr : [],
|
|
dataArr : [
|
|
{ id: 0, type: "text", data: "0" },
|
|
{ id: 1, type: "text", data: "1" },
|
|
{ id: 2, type: "text", data: "2" },
|
|
{ id: 3, type: "text", data: "3" },
|
|
{ id: 4, type: "text", data: "4" },
|
|
{ id: 5, type: "text", data: "5" }
|
|
]
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad(options) {
|
|
let initData = this.data.dataArr.slice(0, 3)
|
|
this.setData({
|
|
swiperArr: initData
|
|
})
|
|
},
|
|
// 触摸开始
|
|
onStart(e){
|
|
let { clientY } = e.changedTouches[0]
|
|
startY = clientY
|
|
},
|
|
// 触摸结束
|
|
onEnd(e){
|
|
let { clientY } = e.changedTouches[0]
|
|
endY = clientY
|
|
if(startY-endY >50 || endY-startY>50){
|
|
this.onIsDirection()
|
|
}
|
|
},
|
|
// 计算前后滚动
|
|
onIsDirection(){
|
|
let { swiperArr, dataArr, swiperNumber } = this.data
|
|
if(startY > endY){
|
|
this.setData({
|
|
swiperNumber: swiperNumber += 1,
|
|
isLoop : true
|
|
})
|
|
let newNumber = swiperNumber%3 >= 2 ? 0 : swiperNumber%3 + 1
|
|
let nextNumber = swiperNumber + 1
|
|
|
|
if(nextNumber >= dataArr.length){
|
|
this.setData({
|
|
isLoop: false
|
|
})
|
|
wx.showToast({
|
|
title: '没有更多内容了~',
|
|
icon : 'none'
|
|
})
|
|
return
|
|
}
|
|
swiperArr[newNumber] = dataArr[nextNumber]
|
|
}else{
|
|
this.setData({
|
|
swiperNumber: swiperNumber > 0 ? swiperNumber -= 1: 0,
|
|
isLoop : true
|
|
})
|
|
let newNumber = swiperNumber%3 <= 0 ? 2 : swiperNumber%3 - 1
|
|
let preNumber = swiperNumber >= 0 ? swiperNumber - 1 : 0
|
|
|
|
if(preNumber < 0){
|
|
this.setData({
|
|
isLoop: false
|
|
})
|
|
wx.showToast({
|
|
title: '没有更多内容了~',
|
|
icon : 'none'
|
|
})
|
|
return
|
|
}
|
|
swiperArr[newNumber] = dataArr[preNumber]
|
|
}
|
|
this.setData({
|
|
swiperArr
|
|
})
|
|
}
|
|
}) |