在我的网页上,我有一个元素$('。detailViewHandle')根据窗口的滚动位置调整其位置。由于弹性滚动(我也称之为'橡皮筋'滚动),我遇到了问题;如果用户非常快速地滚动超出页面的限制,则元素的定位将被抛弃。我试图通过检查以下条件来说明用户何时滚动超过页面的限制:
$(window).scrollTop() > 0
$(window).scrollTop() + $(window).height() < $(document).height()
这是完整的代码:
$(window).scroll(function(){
var offset = 332;
var scrollTop = $(window).scrollTop();
var scrollBottom = $(window).scrollTop() + $(window).height();
if(scrollTop > 0 && scrollBottom < $(document).height()){
$('.detailViewHandle').css('top', $(window).height()-$(window).scrollTop()-$('.projectOverviewPhoto').height()+$('.detailViewHandle').height()/2-offset);
}
});
有没有办法在OSX上完全禁用Chrome中的弹性滚动?我在Firefox中似乎没有这个问题。
我也无法设置溢出:隐藏为body和html(我在其他响应中看到过)因为我要求溢出对于页面的一部分是可见的。
答案 0 :(得分:1)
它最终变得非常简单。事实证明滚动有一些滞后,因此scrollTop可能会从150跳到0.这使我的div在页面上的错误位置。通过设置条件以响应当scrollTop>> 0时,我能够解决问题。
if(scrollTop >= 0 && scrollBottom <= $(document).height()){