如在列表中使用webkit-overflow-scrolling: touch
时所讨论的那样here in the apple forum,触摸识别就会被破坏。
被触摸的元素不是唯一实际被击中的元素,而是在步骤1中触及的元素以启动滚动。我尝试使用iScroll复制本机滚动但失败了。滚动非常缓慢且无法使用。尽管等待名单停止,有没有办法解决问题? :( Thx提前
修改的
现在解决方法:
检查滚动:
$('.myList').on('touchmove', function(event {
App.set('scroll', true);
});
滚动后拒绝第一次触摸:
click : function(event) {
if (App.get('scroll')) {
App.set('scroll', false);
return false;
} else {
this.performClick();
return true;
}
}
现在所有ios用户都必须触摸两次......有没有办法捕捉第一次触摸的坐标并在同一坐标处模拟第二次触摸?
答案 0 :(得分:0)
我从你的描述中理解的是你有一个锯齿状的滚动效果。我想你可能有悬停事件聚焦而不是触摸和滚动事件。
如果您有:为列表项(或其任何父元素或子元素)设置悬停,则会影响您的触摸。触摸设备将首先模拟悬停效果,然后模拟您的点击/滚动事件。这导致锯齿状的卷轴。全部清除:悬停状态并再次检查是否遇到同样的问题。
我写了一篇关于响应式设计的详细文章和演示文稿。你可以找到它here。请查看第8,9和12节。
答案 1 :(得分:0)
在我的情况下,简单地将列表包含在-webkit-overflow-scrolling: touch;
的额外div中有助于克服这个问题。