touch事件不能准确获取到元素

本文介绍了解决移动端touchmove事件中event.touches[0].target指向初始元素而非当前悬停元素的问题。通过使用document.elementFromPoint方法,可以准确地获取手指当前位于哪个元素上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

移动端的touchstart, touchmove, touchend三个事件,点击元素并拖动时,获取到了touchmove事件, 但是


event.touches[0].target所指向的元素却是touchstart时获取到的元素,而并非手指所移动到上方的元素,所以在处理获


取移动到哪个元素上方之类的需求时,普通方法已不奏效,解决方式如下:


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


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


备注:不同版本可能获取方式不同,有的是利用下面的代码来获取


document.elementFromPoint(event.clientX, event.clientY);


例:

  $('li').on('touchmove',function(){


    var element = document.elementFromPoint(event.touches[0].pageX, event.touches[0].pageY);


  })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值