获取移动端 touchend 事件中真正触摸点下方的元素

  移动端的touchstart, touchmove, touchend三个事件,拖动元素结束时,获取到了touchend事件, 但是event.touches[0].target所指向的元素却是touchstart时获取到的元素,而并非手指所移动到上方的元素,所以在处理获取移动到哪个元素上方之类的需求时,普通方法已不奏效,解决方式如下:

  var element = document.elementFromPoint(event.originalEvent.pageX, event.originalEvent.pageY);

  这样获取到的即为所需元素。

 

1 document.addEventListener('touchend', function(e) {
2     var event = e || window.event;
3     var element = document.elementFromPoint(event.changedTouches[0].pageX, event.changedTouches[0].pageY);
4     console.log(element);
5 }, false);

 

你可能感兴趣的:(获取移动端 touchend 事件中真正触摸点下方的元素)