我正在寻找一种方法来防止在 Chrome 和 Safari 中的 OS X 上发生弹性滚动。
如果您不明白我的意思,那就是当您在页面顶部时向上滚动,或者在页面在底部时向下滚动,并且在页面后面显示灰色背景。
有一个单页应用程序的 css 解决方案,您只需添加overflow:hidden
到html
或body
但是,我需要能够滚动。
我想出了一个使用 Javascript (JQuery) 的解决方案,但它仅用于滚动通过顶部,并且仅适用于 chrome。此外,它在 Safari 中有点问题。
$(window).on('scroll', function(e){
scrollAmount = $(this).scrollTop();
if(scrollAmount < 1){
$(this).scrollTop(1);
}
});
因此,这只是检查用户滚动到 1 以下,这意味着他们尝试向上滚动到页面结束的位置。我尝试了 0 但这没有用。我一直无法找到一种方法来检查用户是否滚动通过了页面底部。
那么有什么想法吗?
编辑:
$(window).on('scroll', function(e){
scrollAmount = $(this).scrollTop();
if(scrollAmount < 1){
$(this).scrollTop(1);
}
if(scrollAmount > $(document).height() - $(window).height()){
$(this).scrollTop($(window).height());
}
});
现在我添加了一个检查,如果我们滚动通过页面底部。但是这种方法不起作用,它非常不优雅地弹跳。