触屏设备上的Angular鼠标指令

3
我有一个简单的基于HTML5、CSS和Angular的网页游戏。它使用了Angular的ng-mousedown、ng-mousemove和ng-mouseup指令,让用户在游戏中可以高亮显示字母和方块,并可从左右滑动来操作游戏。
在桌面浏览器上运行良好。然而,在iPad或iPhone上的移动版Safari中,所有鼠标操作似乎都无法正常触发,触摸操作只是试图平移和缩放浏览器窗口本身。
到目前为止,我没有将jQuery包含在我的解决方案中。我之前用过jQuery-touch-punch使jQUery-UI的拖放在移动版Safari上工作。但有没有不使用jQuery的解决方案呢?我只希望应用程序在桌面浏览器上的表现与移动设备上一致。
先谢谢你!
1个回答

1

ngTouch听起来像是你想要的模块。 ngClick 是 jQuery 点击事件的抽象,支持鼠标和触摸事件。如果您想在用户按下时突出显示某些内容,则此代码段可能会有所帮助:

此指令还在元素被按下(通过鼠标单击或触摸)时设置 CSS 类 ng-click-active,因此您可以重新设计被按下的元素。

此外,ngSwipeLeftngSwipeRight 允许设置滑动事件回调。

然而,听起来你的游戏可能需要比仅绑定这3个指令更复杂的行为。如果您创建自己的指令并使用 $swipe 服务,您可能可以更好地控制其行为。


看起来很酷,但是 - 它只支持水平滑动,而不支持垂直滑动吗?这对我来说似乎难以置信。 - blaster
$swipe服务同时支持两种操作。根据文档(在我的回答中提供链接):“一旦超过阈值,水平或垂直增量就会变大。- 如果水平距离更大,则为滑动并移动事件,最后是结束事件。- 如果垂直距离更大,则为滚动,我们让浏览器接管。” - jelinson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接