我注意到 iOS 10 中带有 CSS scroll-snap属性的一个奇怪错误。
这是我的CSS:
#springBoard{
height: 100%;
width: 100%;
font-size: 0px;
white-space: nowrap;
overflow: scroll;
-webkit-overflow-scrolling: touch;
-webkit-scroll-snap-type: mandatory;
-webkit-scroll-snap-points-x: repeat(100%);
}
section{
display: inline-block;
width: 100%;
height: 100%;
vertical-align: top;
font-size: 16px;
}
如果我以编程方式滚动到一个捕捉点,然后更改滚动捕捉容器内的内容,则导航会捕捉回第一个捕捉点。
// Programatically scroll the scroll-snap container
$("#springBoard")[0].scrollLeft = 320
它似乎与我触发滚动的方式无关。所有这些滚动方法都会产生相同的结果:
$("#springBoard")[0].scrollLeft = 320
$("#springBoard").animate({scrollLeft: 320}, 1)
$("#springBoard > section:eq(1)")[0].scrollIntoView()
window.location.hash = "sectionId"
- 手动滚动时不会发生该错误(请参阅下面的@maxime 评论)。
- 它从 iOS 10.3.2 版本开始存在。
- 不知道 iOS 11 有没有修复。
我花了几天时间试图解决这个问题,但到目前为止没有成功。
有谁知道解决这个