(TouchMove) с двумя пальцами пожары событие только один раз

Событие touchmove обнаруживает каждый слайд вдоль экрана, но когда я использую два пальца и делаю жест жестом, оно срабатывает только один раз. Поэтому, когда я пытаюсь что-то увеличить, оно только увеличивает каждый жест, а не непрерывно. Это нормальное поведение? Это Angular 4, вот код:

  <pdf-viewer (touchstart)="zoomStart($event)"  (touchmove)="zoomMove($event)"  (touchend)="zoomEnd($event)"  [zoom]="zoom" [src]="pdfSrc" id="pdfObj"  [render-text]="false" style="display: block;margin-top:5px" [fit-to-page]="true" [original-size]="false"></pdf-viewer>

Функции:

  zoomStart(e) {
    if (e.touches.length === 2) {
      console.log(event);
      event.preventDefault();
      this.scaling = true;
      this.pinchStart(e);
    }
  }
  zoomEnd(e) {
    console.log('END');
    this.scaling = false;
  }
  zoomMove(e) {
    console.log(event);
    if (this.scaling && e.touches.length === 2) {
      console.log('TWO');
      event.preventDefault();
      var dist = Math.hypot(
        e.touches[0].screenX - e.touches[1].screenX,
        e.touches[0].screenY - e.touches[1].screenY);

      if (dist >= this.fingerDistance)
        this.zoom += 0.5;
      else {
        if (this.zoom <= 1)
          return;
        this.zoom -= 0.5;
      }

    }
  }
  pinchStart(e) {
    this.fingerDistance = Math.hypot(
      e.touches[0].screenX - e.touches[1].screenX,
      e.touches[0].screenY - e.touches[1].screenY);
  }

0 ответов

Другие вопросы по тегам