2012-11-07 150 views
1

我在iOS上使用“新”CSS属性来实现滚动势头-webkit-overflow-scrolling。我有一个<div>的列表,您可以滚动并选择,以便选择器消失,并将选定的项目放置在别处。问题是如果项目A在位置(X,Y);向上滑动以向下滚动,并且在滚动动量被激活的同时,再次点击位置(X,Y),其中项目A曾经是,但现在被向上移动的项目B占据,项目A是正被选择的位置。点击滚动势头是越野车

视频是值得一万个字:https://www.youtube.com/watch?v=mXh28IY3wIU

这是一个已知的bug?我使用jQuery的移动事件“水龙头”,像这样:

$selector.on('tap', '.act-item-inner', function(e){ 
    e.preventDefault(); 
    var $selected=$(this); 
    [...] 
} 

,你会想象,$选择是包装和$选择的是B项

回答

0

同时通过网站上的iOS滚动浏览器

  1. 从您的网站截图
  2. 并冻结JavaScript引擎(包括所有JavaScript-/DOM事件)。

所以,是的,这是众所周知的。但它像设计一样工作。 您可以通过setTimeoutsetInterval将一些消息打印到控制台来观察此行为。你会发现它们在弹性滚动过程中不会被执行。

我建议在发动机解冻时,这会导致您的特定用例中的竞争条件。