【问题标题】:Angular 2 Mobile Gestures Block Vertical ScrollAngular 2 移动手势阻止垂直滚动
【发布时间】:2017-02-10 04:40:45
【问题描述】:

移动手势会阻止页面上的垂直滚动。

例如我有以下 div:

<div (swipeleft)="onSwipeLeft()" (swiperight)="onSwipeRight()">
contents....
</div>

当我向左或向右滑动时,它可以正常工作,但是对于内容较长的页面存在问题,它不允许在此类页面上垂直滚动。

【问题讨论】:

  • “有问题”是什么意思?给minimal reproducible example
  • 它不允许垂直滚动,例如,只需在您的应用组件中添加上面的 div 并添加一些足够长的内容以请求用户滚动页面。然后在任何移动设备上进行测试。
  • 我遇到了同样的问题。

标签: angular angular2-template angular2-directives hammer.js angular2-services


【解决方案1】:

因为hammerjs 滑动是建立在CSS "touch-action" 属性之上的,iOS 不支持该属性。 http://caniuse.com/#feat=css-touch-action

更新:您可以通过进入hammer.js 文件并稍作修改来解决此问题。注释掉以下分别位于第 1262 行和第 1307 行附近的两个代码块。

首先这个...

if (this.manager.session.prevented) {
  srcEvent.preventDefault();
  return;
}

然后注释掉这个函数的body

preventSrc: function(srcEvent) {
  this.manager.session.prevented = true;
  srcEvent.preventDefault();
}

重建您的应用程序,然后更改您的主 html 文件以指向这个新修改的锤子文件。

【讨论】:

  • 行为与Android相同。
猜你喜欢
  • 1970-01-01
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多