// 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 }) } })