| | |
| | | const MinDistance = 10; |
| | | const getDirection = (x, y) => { |
| | | if (x > y && x > MinDistance) { |
| | | return 'horizontal'; |
| | | } |
| | | if (y > x && y > MinDistance) { |
| | | return 'vertical'; |
| | | } |
| | | return ''; |
| | | }; |
| | | export default Behavior({ |
| | | methods: { |
| | | resetTouchStatus() { |
| | | this.direction = ''; |
| | | this.deltaX = 0; |
| | | this.deltaY = 0; |
| | | this.offsetX = 0; |
| | | this.offsetY = 0; |
| | | }, |
| | | touchStart(event) { |
| | | this.resetTouchStatus(); |
| | | const [touch] = event.touches; |
| | | this.startX = touch.clientX; |
| | | this.startY = touch.clientY; |
| | | }, |
| | | touchMove(event) { |
| | | const [touch] = event.touches; |
| | | this.deltaX = touch.clientX - this.startX; |
| | | this.deltaY = touch.clientY - this.startY; |
| | | this.offsetX = Math.abs(this.deltaX); |
| | | this.offsetY = Math.abs(this.deltaY); |
| | | this.direction = getDirection(this.offsetX, this.offsetY); |
| | | }, |
| | | }, |
| | | }); |
| | | const MinDistance=10,getDirection=(t,s)=>t>s&&t>10?"horizontal":s>t&&s>10?"vertical":"";export default Behavior({methods:{resetTouchStatus(){this.direction="",this.deltaX=0,this.deltaY=0,this.offsetX=0,this.offsetY=0},touchStart(t){this.resetTouchStatus();const[s]=t.touches;this.startX=s.clientX,this.startY=s.clientY},touchMove(t){const[s]=t.touches;this.deltaX=s.clientX-this.startX,this.deltaY=s.clientY-this.startY,this.offsetX=Math.abs(this.deltaX),this.offsetY=Math.abs(this.deltaY),this.direction=getDirection(this.offsetX,this.offsetY)}}}); |