(swipeup)并没有使用Hammerjs在Angular 4中触发

时间:2017-09-14 13:11:10

标签: html angular hammer.js

我注意到指令(swipeup)似乎不起作用: 我尝试过使用(swipeleft)并且有效:

<div [@myAnimation] (swipeup)="showActionBar = false" fxFlex="56px" *ngIf="showActionBar" fxLayoutWrap fxLayoutAlign="start center"fxLayoutGap="8px" class="overview-actions">

有没有人为此提供解决方案/解决方案。我看过,但没有找到与我的问题相关的解决方案。

谢谢你, 学家

2 个答案:

答案 0 :(得分:10)

您可以从@ angular / platform-b​​rowser导入锤子配置并覆盖它。默认情况下,向上和向下滑动都会关闭,因为它们会在用户尝试滚动时导致问题。

<强> app.module.ts

  import * as Hammer from 'hammerjs';
  import { HammerGestureConfig, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';

  export class HammerConfig extends HammerGestureConfig {
    overrides = <any>{
      'swipe': { direction: Hammer.DIRECTION_ALL }
    };
  }

  @NgModule({
    declarations: [
      AppComponent
    ],
    imports: [
      BrowserModule
    ],
    providers: [
      {
        provide: HAMMER_GESTURE_CONFIG,
        useClass: HammerConfig
      }
    ],
    bootstrap: [AppComponent]
  })
  export class AppModule { }

答案 1 :(得分:0)

根据this你可以试试吗?

var hammertime = new Hammer(document.body);

hammertime.get('swipe').set({ direction: Hammer.DIRECTION_ALL });

根据文件 “默认情况下,它会添加一组轻击,双击,按下,水平平移和滑动,以及多点触控捏合和旋转识别器。默认情况下禁用捏合和旋转识别器,因为它们会阻止元素,但您可以启用他们打来电话:

hammertime.get('pinch').set({ enable: true });
hammertime.get('rotate').set({ enable: true });

启用平移和滑动识别器的垂直或所有方向:

hammertime.get('pan').set({ direction: Hammer.DIRECTION_ALL });
hammertime.get('swipe').set({ direction: Hammer.DIRECTION_VERTICAL });