Chrome移动所有孩子的身体过度滚动行为错误

时间:2017-12-30 19:59:20

标签: javascript css cordova google-chrome mobile

因此,随着chrome 63的发布,我们获得了新的overscroll-behavior属性。在过去,我们使用overflow:hidden来获取我们的方式,但是这个新属性会使移动设备上滚动的错误更加明显。

如果您使用Android上的Chrome浏览器自定义Google here,您可以看到该错误。

在聊天框中,如果向下滚动并尝试向上滚动而不用从屏幕上抬起手指,除非向上滚动然后向下滚动,否则您将看不到。同样如果你要向上滚动然后抬起你的手指然后尝试向上滚动然后向下滚动而不抬起手指它会卡住。无论是否使用过度滚动行为,所有孩子都会发生这种情况。并且不仅限于它在x上发生的y轴。

正如您所知,这对用户来说非常烦人。

我能想到的唯一解决方案(尚未实现)是监听滚动事件,当用户将元素一直滚动到底部时,将滚动调整为0.1px,这样用户就无法真正达到元素的底部,但这将是非常昂贵的,我们知道滚动事件不会立即在移动设备上触发,导致捕捉效果(我不知道它会导致什么其他影响,如打破用户滚动动作,好像他们刚刚抬起手指一样。)

同样来自contain

的googles defention
  

包含 - 防止滚动链接。滚动不会传播到   祖先 但显示了节点内的局部效果。例如,   Android上的过度滚动发光效果 或橡皮筋效果   iOS会在用户点击滚动边界时通知用户。注意:   使用overscroll-behavior:在html元素上包含阻止   过度导航行动。

这根本不会发生,因此规范被打破了。

据我所知,所有版本的Chrome for mobile都会出现这种情况,无论是webview,网站还是全屏添加到主页都无关紧要。

如果有人知道是否有一个解决方法,不必完全更改某个应用程序的结构,如果有一个错误跟踪器也会很好。

更新: 错误正在here

上进行

2 个答案:

答案 0 :(得分:0)

所以这是我使用它的解决方法,但用户会看到一个小小的跳跃,但这是我可以忍受的折衷。

with open(fin, 'r',encoding='utf-16') as input:
    headers=input.next().split('\t')
    uniques = set(line.split('\t')[0] for line in input)
    uniques = list(uniques)

答案 1 :(得分:0)

Chrome 65已解决此问题。