Hammerjs在Safari中的滚动问题

4
我想允许水平滑动事件并保持垂直滚动。因此请使用以下代码:

touch-action: pan-y !important;

但是 Safari 不支持 "touch-action"。 HammerJS 的 preventDefaults 无法检测到 "touch-action: pan-y" css,因此它会阻止滚动。 因此,在其他支持 "touch-action" 的浏览器上滑动和滚动都可以正常工作,但是在 Safari 上只有滑动可以正常工作。 我正在使用 Angular2。
<div (swipeleft)="swipe($event)" (swiperight)="swipe($event)">

请帮忙!我是否遗漏了任何配置。


我也遇到了这个问题..很糟糕!:\ - Elron
1个回答

1
我找到了一个解决方案。
1)将以下内容添加到app.module.ts中。
export class BaluHammerConfig extends HammerGestureConfig {
    overrides = {
        pan: {
             direction: 6
      },
      pinch: {
          enable: false
      },
      rotate: {
          enable: false
      }
  };
}

2) 不要将 HammerGestureConfig 添加到您的提供程序中,使用以下内容:

{
    provide: HAMMER_GESTURE_CONFIG,
    useClass: BaluHammerConfig
},

不确定你是否在Safari中验证过,但它无法工作。 - Mohy Eldeen
没关系,它确实起作用了,我的浏览器没有捕捉到更改。 - Mohy Eldeen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接