angularjs - Safari 中的 Hammerjs : scroll issue

标签 angularjs safari mobile-safari hammer.js

我想允许水平滑动事件并保持垂直滚动。
所以使用这个:

touch-action: pan-y !important;

但 Safari 不支持“触摸 Action ”。
HammerJS preventDefaults 无法检测“touch-action: pan-y”css,因此它阻止了滚动。

因此,滑动效果很好,但无法滚动 Safari。在其他支持“触摸 Action ”的浏览器上滑动和滚动都可以工作。

我正在使用 angular2。
<div (swipeleft)="swipe($event)" (swiperight)="swipe($event)">

请帮忙!有没有我遗漏的配置。

最佳答案

我找到了解决方案

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
},

关于angularjs - Safari 中的 Hammerjs : scroll issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51815182/

相关文章:

javascript - 从 View 中修改 ng-model

javascript - 使用 ng-click 将动态值传递给 Angular 函数

html - 移动 Safari 横向模式下的 CSS 渲染错误?

ios - IOS Safari 中存在滚动错误

javascript - Safari ios(iphone 和 ipad)仅在单击 devtools 时才能正常工作

javascript - Angularjs:如何将特定数据传递给模态

javascript - 如何从angularjs访问变量express

Safari 中的 CSS RGBA 透明度表现不同。我该如何解决?

"-webkit-transform"的 iOS Safari 内存使用情况

html - 如何在 Mobile Safari iPad 1 上对齐文本(右/居中)