2017-09-14 89 views
2

我已经注意到,指令(swipeup)似乎并不奏效: 我一直在使用(swipeleft)尝试和工作原理:(swipeup)未在角4触发与Hammerjs

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

有没有人有这方面的解决方案/解决方法。我看过,但没有找到与我的问题相关的解决方案。

谢谢 J.

+0

如何导入锤? (刷卡)工作吗? – Vega

+0

当我使用(滑动)时,会触发左右滑动,但不会上下滑动 –

回答

4

您可以从@ 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 { } 
+0

非常感谢您的支持! –

0

根据this你可以试试这个?

var hammertime = new Hammer(document.body); 

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

而且根据文档 “默认情况下,增加了一套自来水,doubletap,新闻,水平平移和轻扫,和多点触摸捏和旋转识别器。捏和旋转识别器是通过禁用默认情况下,因为它们会使元素阻挡,但你可以通过调用使他们:

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 }); 
+0

我会在哪里实施此操作? –

+0

你在哪里进口hammerJS?你的代码中有脚本标记吗? –

+0

感谢您的意见,下面的答案是解决我的问题。 –