在OS X Chrome和Safari

问题描述 投票:0回答:3
overflow:hidden

添加到

html

body

,但是,我需要能够滚动。

我已经提出了使用JavaScript(jQuery)的解决方案,但它仅用于滚动通过顶部,并且仅适用于Chrome。另外,在Safari中有点越野车。

$(window).on('scroll', function(e){
   scrollAmount = $(this).scrollTop();
   if(scrollAmount < 1){
      $(this).scrollTop(1);
   }
});
这只是检查以下用户滚动的检查,这意味着他们试图向上滚动通过页面结束的地方。我尝试了0,但这没用。
我找不到检查用户滚动是否通过页面底部的方法。

有什么想法?

Edit:

$(window).on('scroll', function(e){ scrollAmount = $(this).scrollTop(); if(scrollAmount < 1){ $(this).scrollTop(1); } if(scrollAmount > $(document).height() - $(window).height()){ $(this).scrollTop($(window).height()); } });

现在,我已经添加了一张检查,以便我们滚动通过页面的底部。但是,这种方法无法正常工作,它非常毫不动心地弹跳。 

您现在可以使用

overscroll-behavior

html, body { overscroll-behavior: none; }

javascript jquery css
3个回答

7
投票

CSS属性可以做到这一点。 <= 0, will make sure no action is taken when this happens.

,但是,如果您包括他的解决方案,
html, body {
  overscroll-behavior: none;
}
您正在禁用触控板手势导航,在我的情况下,这很重要。

0
投票

html, body { overscroll-behavior: auto none; }


当我不喜欢这种方法时,您可以使用jQuery来获取文档的高度(因此使用

$(document).height();

)滚动距离的页面底部。 另一个方法是用the the属性

<div id="preventScroll"></div>
包装整个页面。

将是一个单独的滚动设备,并防止您的整个问题。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.