【问题标题】:Is it possible to implement "enter" event detection with touch events?是否可以通过触摸事件实现“进入”事件检测?
【发布时间】:2017-03-23 02:53:03
【问题描述】:

我有以下要求

  1. 用户点击屏幕上的一个方块。
  2. 有相邻方块因为它是一个网格,然后用户可以在不释放鼠标的情况下移动到相邻方块,我需要检测鼠标进入这个新方块以激活下一个,第一次移动后,运动方向变得固定。
  3. 重复,直到松开鼠标,松开鼠标时,检查是否匹配,仅此而已。

我已经用onmousedownonmouseenteronmouseleave 很好地实现了这一点,在我处理最后一步的文档中添加了onmouseup

问题是,我需要它才能在移动设备上工作。我已经设法用touchstarttouchmove 组合实现了拖动divs,这很简单。现在我尝试实现上述行为,但我发现,

  • 不再存在touchentertouchleave 事件,并且touchmove 显然只有在目标已经有touchstart 事件时才会触发。

令人沮丧的是,没有无缝的方法可以做到这一点,我确实理解触摸设备与鼠标不一样,但我认为有一些常见的行为应该区别对待,只区别对待特殊的东西每个设备都有。

如果有办法做到这一点,我真的会很感激,因为我已经厌倦了阅读文档和尝试看似可以解决问题但实际上并没有解决问题的方法。

根据 cmets 的要求,这是我的网格

请注意,此网格不是静态的,也不是直接使用 HTML 创建的,它是从文件中提取并使用不同的程序生成的,它只是一个 <table>

【问题讨论】:

  • 添加页面的粗略图/截图

标签: javascript mouseevent touch-event


【解决方案1】:

我的最终解决方案是在容器(表格主体)上添加一个touchmove 监听器,然后使用elementFromPoint() 手动触发给定元素的事件。

我会跟踪触发事件的最后一个元素,以防止多次触发。如果需要,它还允许触发touchleave

【讨论】:

  • 如何检测你所在的网格?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多