Blame view

src/wxcomponents/vant/mixins/touch.js 1.02 KB
289f85d9e   Adam   提交
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
  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 const touch = 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[0];
              this.startX = touch.clientX;
              this.startY = touch.clientY;
          },
          touchMove(event) {
              const touch = event.touches[0];
              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 = this.direction || getDirection(this.offsetX, this.offsetY);
          }
      }
  });