在iOS Safari中,当用户触摸停止滚动元素时,event.target无法返回手指下的正确元素

时间:2012-08-09 13:38:45

标签: scroll mobile-safari touch-event

问题

Here就是一个例子,请在iOS Safari上测试它。

在此示例中,当用户触摸一个锚点时,触摸位置处的锚点背景将变为灰色。

当用户滚动元素时,立即触摸元素使其在自动停止之前停止。错误的元素将变为灰色。实际上,滚动前触摸位置的锚点将变为灰色。

可能的解决方案

  1. 最佳解决方案是在触摸时停止滚动元素,在触摸位置获取正确的锚点。

  2. 如果无法获得正确的锚点,请在触摸停止时停止灰色转动接受滚动元素。但我怎么知道用户是否正在触摸 - 停止滚动元素或只是点击?换句话说,我怎么知道元素是否滚动?

1 个答案:

答案 0 :(得分:0)

也遇到了这个问题。滚动搜索结果列表,点击一个并获取详细信息。这只适用于滚动帽绝对停止的情况。只要列表中仍有一些动作,水龙头就会选择错误的项目。

简单的解决方案:禁用原生滚动,取出

-webkit-overflow-scrolling: touch;

它不再滚动得那么好了,但现在点击确实有效。

此时,如果你真的需要它,你可以查看带来漂亮滚动效果的库。