65 lines
2.1 KiB
JavaScript
65 lines
2.1 KiB
JavaScript
// index.js
|
|
var minOffset = 30; //最小偏移量,低于这个值不响应滑动处理
|
|
var minTime = 60; // 最小时间,单位:毫秒,低于这个值不响应滑动处理
|
|
var startX = 0; //开始时的X坐标
|
|
var startY = 0; //开始时的Y坐标
|
|
var startTime = 0; //开始时的毫秒数
|
|
|
|
Page({
|
|
data: {
|
|
// markers: [{
|
|
// id: 1,
|
|
// longitude: 120.22096505715056,
|
|
// latitude: 30.257772854411684,
|
|
// width: 48,
|
|
// height: 48,
|
|
// iconPath: '../../static/index/location_fill.png'
|
|
// }],
|
|
height: 30,
|
|
lat: 40.412646,
|
|
lng: 110.034106
|
|
},
|
|
onLoad(e) {
|
|
const res = wx.getWindowInfo()
|
|
this.setData({
|
|
panelTop: parseInt(res.windowHeight / 3) * 2,
|
|
windowHeight: res.windowHeight
|
|
})
|
|
},
|
|
tapMap(e) {
|
|
let h = parseInt(this.data.windowHeight / 3) * 2
|
|
this.setData({
|
|
panelTop: h
|
|
})
|
|
},
|
|
touchStart: function (e) {
|
|
startX = e.touches[0].pageX; // 获取触摸时的x坐标
|
|
startY = e.touches[0].pageY; // 获取触摸时的x坐标
|
|
startTime = new Date().getTime(); //获取毫秒数
|
|
},
|
|
touchCancel: function (e) {
|
|
startX = 0; //开始时的X坐标
|
|
startY = 0; //开始时的Y坐标
|
|
startTime = 0; //开始时的毫秒数
|
|
},
|
|
touchEnd: function (e) {
|
|
var endX = e.changedTouches[0].pageX;
|
|
var endY = e.changedTouches[0].pageY;
|
|
var touchTime = new Date().getTime() - startTime;
|
|
if (touchTime >= minTime) {
|
|
var xOffset = endX - startX;
|
|
var yOffset = endY - startY;
|
|
if (Math.abs(xOffset) < Math.abs(yOffset) && Math.abs(yOffset) >= minOffset) {
|
|
if (yOffset < 0 || (e.target.offsetTop > 400)) {
|
|
this.setData({
|
|
height: 80
|
|
})
|
|
} else {
|
|
this.setData({
|
|
height: 30
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}) |