【发布时间】:2016-03-23 13:35:41
【问题描述】:
我和我的团队正在开发一个带有固定标题且不会滚动的 Web 应用程序。
为了在 iOS 上处理过度滚动,我们需要检测负方向的滚动并将固定标题重新定位为静态,以使其与页面的其余部分一起滚动。
我们通过绑定 jQuery 滚动来做到这一点处理程序到window:
$(window).scroll(function() {
if ($(window).scrollTop() < 0) {
// position static header postioning in order
// let the header behave correctly when overscrolling
}
});
当页面被手动拉下(拖动)时,这很有效。
但正如每个 iOS 用户都知道的那样,当从向下位置再次加速滚动页面时,一旦到达顶部,它就会弹跳(过度滚动)。
在这种情况下,我们的滚动处理不起作用。
目前我可以想象两个原因,为什么会出现这种不同的行为:
- 快速向上滚动和页面反弹对于 Safari 的 JS 引擎来说太快,无法确保流畅的处理
- 向上滚动时弹跳在技术上与手动下拉网页相同吗?关于
$(window).scrollTop()?
有没有人提示我如何让我的滚动处理在这两种情况下都能正常工作?
【问题讨论】:
标签: javascript jquery html ios mobile-safari