我正在使用Ionic制作文字游戏,用户可以在一次滑动中选择一系列相邻的字母。这些字母是作为单独的div元素实现的。
我知道用什么事件来开始写信(touchstart似乎运作良好),但我无法弄清楚用于中间瓷砖的事件。 Touchstart不起作用; touchdrag似乎不起作用。从本质上讲,"鼠标"当他们开始在中间翻过那封信时已经失败了。
有关我如何检测任何触摸的任何见解(无论是开始还是用户已经处于"刷卡"从另一个瓷砖开始的中间)?
答案 0 :(得分:1)
您可以将elementFromPoint与touchmove
事件一起使用。因此,在touchmove
回调函数中,包含事件的(e)
参数,并尝试将其收集到所有触及的元素。
var touchedIds = [];
var touches = e.originalEvent.touches;
for(var x = 0; x < touches.length; x++) {
var touch = e.originalEvent.touches[x];
var element = document.elementFromPoint(touch.clientX, touch.clientY);
touchedIds[x] = element; // however you want to add it to the array.
}
你最终会触及一个元素数组。你可能需要过滤掉额外内容以获得它们的不同数组,但这将是微不足道的。