微信小程序实现手势滑动

1、实现思路

变量解释:

startY(开始 Y 坐标)、startX(开始 X 坐标)
touchMoveY(结束 Y 坐标)、touchMoveX(结束 X 坐标)

  1. 通过touchstart事件获取手势开始时的 X、Y 坐标
  2. 通过touchend获取手势结束时的 X、Y 坐标
  3. 通过三角函数Math.atan计算角度(滑动范围)
  4. 以元素左上角为原点,向右、向下增大,通过初始、结束坐标的 X、Y 轴位置判断
    • 在 X 轴上:startX > touchMoveX向左滑动;touchMoveX > startX向右滑动
    • 在 Y 轴上:startY > touchMoveY向上滑动;touchMoveY > startY向下滑动

2、实现代码

touch.js

/**
 * 左右 or 上下 角度分隔值
 * 小于 45 左右滑动
 * 大于 45 上下滑动
 */
const slidingRange = 45;

/**
 * 起始坐标
 */
let startCoord = {
   
   
  x: 0,
  y: 0,
};

/**
 * 设置起始坐标
 * @param {Object} coord
 * @param {Number} coord.x
 * @param {Number} coord.y
 */
export function setStartCoord(coord) {
   
   
  startCoord.x = coord.x;
  startCoord.y = coord.y;
}

/**
 * 计算滑动角度
 * @param {Object} endCoord
 * @param {Number} endCoord.x
 * @param {Number} endCoord.y
 * @returns
 */
function _calculateAngle(endCoord) {
   
   
  const _X = endCoord.x - startCoord.x,
    _Y = endCoord.y - startCoord.y
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值