如何在移动设备上触发Mousedown / Mouseup触发?

时间:2018-07-13 23:02:31

标签: javascript angular

creating a website是我的朋友,让他们玩Hashiwokakero的高质量在线实施。

其中有些装有平板电脑,并且网站上的所有内容都可以正常加载,但是当他们触摸并拖动以形成从一个岛到另一个岛的桥梁时,网页会尝试进行滚动(即使没有可滚动区域) !)。

目前,我正在使用以下方法检测鼠标事件:

this.canvas.addEventListener('mousedown', 
    (mouseEvent) => this.mousePressed(mouseEvent), false);

this.canvas.addEventListener('mouseup', 
    (mouseEvent) => this.mouseReleased(mouseEvent), false);

是否可以通过简单的方法在移动设备上调用mousePressed()和mouseReleased()函数?

谢谢!

1 个答案:

答案 0 :(得分:1)

触摸屏的类似事件将是touchstarttouchend,它们与台式机的mousedownmouseup事件完全相同。来自文档:

  

放置一个或多个接触点时会触发touchstart事件   在触摸面上。

  

移除一个或多个接触点时将触发touchend事件   从触摸表面上。

您可以检查docs以获得有关触摸事件的更多信息。

我还猜想可能是,您还需要停止一些事件的冒泡,如果这样,您可以查看events bubblingevent.stopPropagation()来防止他们冒泡。

如果mousedown / touchstartmouseup / touchend事件的逻辑应该相同,则可以按照{{3 }}。