12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- var startX
- var startY
- class touch {
- constructor() {
- }
- _touchstart(e, items) {
- //开始触摸时 重置所有删除
- items.forEach(function (v, i) {
- if (v.isTouchMove) //只操作为true的
- v.isTouchMove = false;
- })
- startX = e.changedTouches[0].clientX
- startY = e.changedTouches[0].clientY
- return items
- }
- _touchmove(e, items,key) {
- const id = e.currentTarget.dataset.id, //获取列表中每一项的唯一值,可以取id
- touchMoveX = e.changedTouches[0].clientX, //滑动变化坐标
- touchMoveY = e.changedTouches[0].clientY, //滑动变化坐标
- //获取滑动角度
- angle = this._angle({
- X: startX,
- Y: startY
- }, {
- X: touchMoveX,
- Y: touchMoveY
- });
- items.forEach(function (v, i) {
- v.isTouchMove = false
- //滑动超过30度角 return
- if (Math.abs(angle) > 30) return;
- if (v[key] == id) { //判断滑动的id与列表中的id是否一致,如果是的话,改变滑动这一项的isTouchMove属性
- if (touchMoveX > startX) //右滑
- v.isTouchMove = false
- else //左滑
- v.isTouchMove = true
- }
- })
- return items
- }
- _angle(start, end) {
- var _X = end.X - start.X,
- _Y = end.Y - start.Y
- //返回角度 /Math.atan()返回数字的反正切值
- return 360 * Math.atan(_Y / _X) / (2 * Math.PI);
- }
- }
- export default touch
|