Hammer JS上压不适用于触摸屏吗?

问题描述 投票:1回答:1

我正在尝试在Angular 5应用程序中实现功能,如果您按下并按住按钮,它将开始增加值1,2,3,4 ...直到您按下到该按钮。

如果您使用鼠标按下并按住,它会很好用,但是当我尝试使用触摸设备时,它有时会起作用,有时却不会。

我调试它,并得到的问题是,如果按住很长时间,它就无法检测到被按下。

这是我的实现方式

 <button id="btn-legend-decrease" (press)="mouseOnPressedDe($event)" (pressup)="mouseOnStop($event)">
      <mat-icon aria-label="Decrease scale" color="primary">remove</mat-icon>
    </button>

    <button id="btn-legend-increase"  (press)="mouseOnPressedIn($event)" (pressup)="mouseOnStop($event)">
      <mat-icon aria-label="Increase scale" color="primary">add</mat-icon>
    </button>

知道如何在Angular中实现这种功能吗?

谢谢

javascript angular hammer.js
1个回答
0
投票

["press""pressup"在大多​​数情况下在html中被指定为处理程序时实际上不起作用:

(press)="mouseOnPressedDe($event)"

我通过直接分配给touchEventManager解决了这个问题。现在它就像时钟一样工作:

let touchEventManager = new Hammer(this.nativeElement, { inputClass: Hammer.TouchInput });
touchEventManager.on('press', this.onPress.bind(this));
© www.soinside.com 2019 - 2024. All rights reserved.