离子 - 当触摸开始在不同的元素上触摸事件?

时间:2015-09-16 15:47:31

标签: ionic-framework hammer.js

我正在使用Ionic制作文字游戏,用户可以在一次滑动中选择一系列相邻的字母。这些字母是作为单独的div元素实现的。

我知道用什么事件来开始写信(touchstart似乎运作良好),但我无法弄清楚用于中间瓷砖的事件。 Touchstart不起作用; touchdrag似乎不起作用。从本质上讲,"鼠标"当他们开始在中间翻过那封信时已经失败了。

有关我如何检测任何触摸的任何见解(无论是开始还是用户已经处于"刷卡"从另一个瓷砖开始的中间)?

1 个答案:

答案 0 :(得分:1)

您可以将elementFromPointtouchmove事件一起使用。因此,在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. 
}

你最终会触及一个元素数组。你可能需要过滤掉额外内容以获得它们的不同数组,但这将是微不足道的。