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

时间:2019-03-15 15:27:25

标签: javascript angular hammer.js

如果您按住按钮,我将尝试在 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中实现这种功能吗?

谢谢

1 个答案:

答案 0 :(得分:0)

在大多数情况下,

"press""pressup"在html中被分配为处理程序时实际上不起作用:

(press)="mouseOnPressedDe($event)"

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

let touchEventManager = new Hammer(this.nativeElement, { inputClass: Hammer.TouchInput });
touchEventManager.on('press', this.onPress.bind(this));