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