| const MIN_DISTANCE = 10 | |
| 
 | |
| function getDirection(x, y) { | |
|     if (x > y && x > MIN_DISTANCE) { | |
|         return 'horizontal' | |
|     } | |
|     if (y > x && y > MIN_DISTANCE) { | |
|         return 'vertical' | |
|     } | |
|     return '' | |
| } | |
| 
 | |
| export default { | |
|     methods: { | |
|         getTouchPoint(e) { | |
|             if (!e) { | |
|                 return { | |
|                     x: 0, | |
|                     y: 0 | |
|                 } | |
|             } if (e.touches && e.touches[0]) { | |
|                 return { | |
|                     x: e.touches[0].pageX, | |
|                     y: e.touches[0].pageY | |
|                 } | |
|             } if (e.changedTouches && e.changedTouches[0]) { | |
|                 return { | |
|                     x: e.changedTouches[0].pageX, | |
|                     y: e.changedTouches[0].pageY | |
|                 } | |
|             } | |
|             return { | |
|                 x: e.clientX || 0, | |
|                 y: e.clientY || 0 | |
|             } | |
|         }, | |
|         resetTouchStatus() { | |
|             this.direction = '' | |
|             this.deltaX = 0 | |
|             this.deltaY = 0 | |
|             this.offsetX = 0 | |
|             this.offsetY = 0 | |
|         }, | |
|         touchStart(event) { | |
|             this.resetTouchStatus() | |
|             const touch = this.getTouchPoint(event) | |
|             this.startX = touch.x | |
|             this.startY = touch.y | |
|         }, | |
|         touchMove(event) { | |
|             const touch = this.getTouchPoint(event) | |
|             this.deltaX = touch.x - this.startX | |
|             this.deltaY = touch.y - this.startY | |
|             this.offsetX = Math.abs(this.deltaX) | |
|             this.offsetY = Math.abs(this.deltaY) | |
|             this.direction =				this.direction || getDirection(this.offsetX, this.offsetY) | |
|         } | |
|     } | |
| }
 |