我在Angular2中使用HammerJS时遇到问题。
我有一个轮播(基于带有Angular2事件处理程序的引导轮播),在这里我在听向左滑动向右滑动事件。
滑动本身效果完美。
问题在于,由于我使用HammerJS,因此无法在旋转木马组件上向上/向下滚动,并且由于它是全视口(viewport)大小的项目,因此这是一个很大的问题。

如何解决这个问题?

最佳答案

得到它了!

在您的AppModule中:

import { HAMMER_GESTURE_CONFIG, HammerGestureConfig } from '@angular/platform-browser';

export class MyHammerConfig extends HammerGestureConfig {
    overrides = <any> {
        'pinch': { enable: false },
        'rotate': { enable: false }
    }
}

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

在禁用pinchrotate之后,现在可以进行垂直滚动。
到目前为止找不到其他方法。我不确定pinchrotate事件会发生什么(我认为它们将被禁用)。但是即使没有此配置,也要附加(pinch)="onPinch($event)"-仍然没有做任何事情。

我的项目中的角版本:2.4.1

测试于:
  • 适用于Windows的Chrome(在Surface上如此真实的触摸屏-不仅是仿真的)v 55.0.2883.87 m(64位)
  • 适用于Android的Chrome-v 55.0.2883.91
  • 关于angular - 垂直滚动不适用于HammerJS和Angular2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41017202/

    10-11 11:50