是否可以通过触摸事件实现 "enter" 事件检测?
Is it possible to implement "enter" event detection with touch events?
我有以下要求
- 用户点击了屏幕上的一个方块。
- 有相邻的方块因为它是一个网格,用户然后可以移动到相邻的方块而不释放鼠标,我需要检测鼠标进入这个新的方块以激活下一个,在第一次移动之后, 移动方向固定。
- 重复,直到释放鼠标,释放鼠标时,检查是否匹配,仅此而已。
我已经用 onmousedown
、onmouseenter
和 onmouseleave
很好地实现了这一点,在我处理最后一步的文档中添加了 onmouseup
。
问题是,我需要它才能在移动设备上工作。我已经设法通过 touchstart
、touchmove
组合实现拖动 div
s,而且很简单。现在我试图实现上述行为,但我发现,
- 不再存在
touchenter
或 touchleave
事件,并且 touchmove
显然只有在目标已经有 touchstart
事件时才会触发。
令人沮丧的是,没有无缝的方式来做到这一点,我知道触摸设备与鼠标不同,但我认为有一些共同的行为应该在没有太大区别的情况下对待,只是区别对待每个设备都有的特殊功能。
如果有办法做到这一点,我真的很感激,因为我已经厌倦了阅读文档和尝试看似可以解决问题但实际上并没有解决问题的方法。
按照评论中的要求,这是我的网格
请注意,这个网格不是静态的,也不是直接用 HTML 创建的,它是从文件中提取并用不同的程序生成的,它只是一个 <table>
.
我最终的解决方案是在容器(the table body)上添加一个touchmove
listener,然后使用elementFromPoint()
trigger手动给定元素的事件。
我会跟踪触发事件的最后一个元素,以防止多次触发。如果需要,它还允许触发 touchleave
。
我有以下要求
- 用户点击了屏幕上的一个方块。
- 有相邻的方块因为它是一个网格,用户然后可以移动到相邻的方块而不释放鼠标,我需要检测鼠标进入这个新的方块以激活下一个,在第一次移动之后, 移动方向固定。
- 重复,直到释放鼠标,释放鼠标时,检查是否匹配,仅此而已。
我已经用 onmousedown
、onmouseenter
和 onmouseleave
很好地实现了这一点,在我处理最后一步的文档中添加了 onmouseup
。
问题是,我需要它才能在移动设备上工作。我已经设法通过 touchstart
、touchmove
组合实现拖动 div
s,而且很简单。现在我试图实现上述行为,但我发现,
- 不再存在
touchenter
或touchleave
事件,并且touchmove
显然只有在目标已经有touchstart
事件时才会触发。
令人沮丧的是,没有无缝的方式来做到这一点,我知道触摸设备与鼠标不同,但我认为有一些共同的行为应该在没有太大区别的情况下对待,只是区别对待每个设备都有的特殊功能。
如果有办法做到这一点,我真的很感激,因为我已经厌倦了阅读文档和尝试看似可以解决问题但实际上并没有解决问题的方法。
按照评论中的要求,这是我的网格
请注意,这个网格不是静态的,也不是直接用 HTML 创建的,它是从文件中提取并用不同的程序生成的,它只是一个 <table>
.
我最终的解决方案是在容器(the table body)上添加一个touchmove
listener,然后使用elementFromPoint()
trigger手动给定元素的事件。
我会跟踪触发事件的最后一个元素,以防止多次触发。如果需要,它还允许触发 touchleave
。