HammerJS Swipe не работает на мобильном устройстве или Google Chrome в режиме устройства - PullRequest
0 голосов
/ 22 мая 2019

У меня есть простой код, чтобы сделать веб-сайт доступным. Он работает, когда я тестирую на Google Chrome на рабочем столе, но когда я собираюсь протестировать на своем мобильном устройстве или в Google Chrome DevTools, режим устройства не работает.

Я пытался изменить значения переопределений HammerGestureConfig, но когда я пытаюсь изменить их на swipeleft или swiperight, я получил ошибку, принимаю только переопределение swipele.

...
import * as Hammer from 'hammerjs';
import { HammerGestureConfig, HAMMER_GESTURE_CONFIG, BrowserModule } from '@angular/platform-browser';
import { SwipeComponent } from './components/swipe/swipe.component';

export class HammerConfig extends HammerGestureConfig {
  overrides = {
    swipe: { direction: Hammer.DIRECTION_ALL },
  } as any;
}

@NgModule({
  declarations: [
    ...
    SwipeComponent,
  ],
  ...
  providers: [
    AuthService,
    {
      provide: HAMMER_GESTURE_CONFIG,
      useClass: HammerConfig
    }
  ],
})
export class AppModule { }

<div
  (swipeleft)="navigateForwardTo(forward)"
  (swiperight)="navigateBackTo(back)">
  <ng-content></ng-content>
  <app-navigation-arrows 
    [back]="back"
    [backEnabled]="backEnabled"
    [forwardEnabled]="forwardEnabled"
    [forward]="forward">
  </app-navigation-arrows>
</div>

1 Ответ

0 голосов
/ 22 мая 2019

Мне пришлось изменить inputClass на Hammer.TouchInput

export class HammerConfig extends HammerGestureConfig  {
  buildHammer(element: HTMLElement): HammerManager {
     return new Hammer.Manager(element, {
      touchAction: 'auto',
      inputClass: Hammer.TouchInput,
      recognizers: [
        [Hammer.Swipe, {
          direction: Hammer.DIRECTION_HORIZONTAL
        }]
      ]
    });
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...